аналогия двумерного массива С в Python
В С я, для вывода каждого элемента двумерного массива пишу следующий код:
for (int i=0; i<N; i++)
{
for(int j=0; j<N;j++){
printf("%d", a[i][j]);
}
printf("/n");
}
Как это интерпритировать в Python .
Ответы (2 шт):
попробуйте так:
for i in range(N):
for j in range(N):
print(a[i][j], end = " ")
print()
либо так:
for i in range(N):
print(*arr[i])
В Питоне принято избегать обращения к спискам (тут массивы так называют) по индексам. Дословный перевод вашей программы с C (с некоторыми исправлениями, так как ваш код работает не так как вы представляете) будет таким:
for row in a:
for v in row:
print(v, end=' ')
print()
Это не самый лучший способ. Лишние пробелы в конце строк - неаккуратно. Лучше печатать строку целиком. С точки зрения программиста на C тут перерасход памяти под строку. С точки зрения питониста все отлично. map применяет str ко всем элементам row, делая из них строки. join склеивает строки через пробелы:
for row in a:
print(' '.join(map(str, row)))
Кроме прямой строковой обработки можно воспользоваться хитростью, которую предоставляет функция print. Синаксис f(*lst) означает "преврати список lst в аргументы функции f". Это именно хитрость, далеко на ней не уедешь, но знать её надо:
for row in a:
print(*row)