в с ++ могу написать:
int someArray[8][8]; for (int i=0; i < 7; i++) for (int j=0; j < 7; j++) someArray[i][j] = 0;
А как я могу инициализировать многострочные массивы в python? Я попробовал:
array = [[],[]] for i in xrange(8): for j in xrange(8): array[i][j] = 0
Вы спрашивали об инициализации списка списков. Это очень полезная структура данных, но она имеет важное отличие от двумерного массива в C ++: нет никаких гарантий, что все строки имеют одинаковую длину (т. Е. len(a[0])==len(a[1]) (в то время как в C ++ у вас есть такая гарантия).
len(a[0])==len(a[1])
Таким образом, другое решение, которое может быть удобно, использует NumPy массив тип данных, например:
import numpy as np array = np.zeros((8,8))
>>> [[0]*8 for x in xrange(8)] [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]] >>>
array = [[0]*8 for i in xrange(8)]
Вот более короткий путь:
array = [] for i in xrange(8): array.append( [0] * 8 )
[[0]*8 for x in range(8)]