Двумерные массивы

Статус
Закрыто для дальнейших ответов.

Fake322

Новичок
Пользователь
Дек 2, 2020
6
1
3
Здравствуйте! Не могу понять почему не собирается код, заранее спасибо.
Python:
# в 1.txt записаны числа: 381 2381 68 12 6 12 30 531 22 5
file = open('1.txt', 'r+')
arr = []
allArray = []
j = 0
counts = list(map(int, file.read().split()))
for i in range(len(counts)):
    arr[j].append(counts[i])
    if counts[i] == counts[i-1]:
        allArray.append(arr[j])
        break
    elif counts[i]<counts[i+1]:
        continue
    else:
        allArray.append(arr[j])
        j += 1

print(allArray)
file.close()
Если чем-то поможет, то задание для кода:
Строки, элементы которых не убывают (т.е. образуют неубывающую последовательность чисел) переместить в начало (вверх), сохранив при этом взаимное расположением перемещаемых строк.
P.S. код пока не дописан и я пытаюсь просто распихать возрастающие последовательности по спискам.

Ошибка:
Traceback (most recent call last):
File "C:/Users/Максим/PycharmProjects/kurs/main.py", line 7, in <module>
arr[j].append(counts)
IndexError: list index out of range
 
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 569
456
83
arr[j].append(counts[i]) - команда не верна, правильно будет так arr.append(counts[i])
arr[j] - у вас arr пуст, там нет элементов с индексом j...
elif counts[i]<counts[i+1]: - тут на последнем элементе вы выходите за пределы списка, так как у вас нет элемента после последнего, т. е. вот этогоcounts[i+1]...
 
Последнее редактирование:

Fake322

Новичок
Пользователь
Дек 2, 2020
6
1
3
arr[j].append(counts[i]) - команда не верна, правильно будет так arr.append(counts[i])
arr[j] - у вас arr пуст, там нет элементов с индексом j...
elif counts[i]<counts[i+1]: - тут на последнем элементе вы выходите за пределы списка, так как у вас нет элемента после последнего, т. е. вот этогоcounts[i+1]...
Спасибо
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
dvumernye-massivy.1726
А что тут было непонятного? Такой же вопрос, такой же ответ.
 

Fake322

Новичок
Пользователь
Дек 2, 2020
6
1
3
dvumernye-massivy.1726
А что тут было непонятного? Такой же вопрос, такой же ответ.
у меня просто логика была чуть другая. я понимал, что у меня arr[j] не содержит элементов, но я думал записать counts в массив arr на место j, а j = 0, вот и думал что массив counts будет нулевым элементом, а оказывается просто нужно было сначала записать все массивы, а потом обращаться по индексу
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Логика была абсолютно такая же, ты создавал пустой массив и пытался обратиться к несуществующему элементу.
а оказывается просто нужно было сначала записать все массивы, а потом обращаться по индексу
О чем тебе и сказали в предыдущей теме.
 
Статус
Закрыто для дальнейших ответов.

Форум IT Специалистов