Ошибка при создании двумерного массива Python IndexError: list index out of range
B=[]
for n in range(0,6):
for k in range(0,6):
B[n][k]=n+k
print(B)
Выдает ошибку IndexError: list index out of range
Ответы (2 шт):
Автор решения: Кирилл Малышев
→ Ссылка
B = []
for n in range(0, 6):
tmp = []
for k in range(0, 6):
tmp.append(n + k)
B.append(tmp)
Или так:
B = [[0] * 6 for i in range(6)]
for n in range(0, 6):
for k in range(0, 6):
B[n][k]=n + k
Или так:
B = [[n + k for k in range(6)] for n in range(6)]
Автор решения: Михаил Муругов
Для Вашей цели подойдёт код:
→ Ссылка
Строка
B[n][k]=n+k
Значит "установить [n][k] элементу B значение n+k", но B изначально пустой, поэтому попытка обращения к любому его элементу выдаст ошибку.
Для Вашей цели подойдёт код:
B=[]
for n in range(0,6):
B.append([]) # Добавляем(!!) в B ещё один список
for k in range(0,6):
B[n].append(n+k) # Добавляем в добавленный список нужные элементы
Можно в одну строку:
B = [[n+k for k in range(6)] for n in range(6)]