В попытке выбрать первый (если считать от нуля) столбца в 2D массив 4x4, я написал следующий скрипт:Выбор столбца из массива в Python
import numpy
a4x4=[list(range(4*i,4*(i+1))) for i in list(range(4))]
print(a4x4)
print(a4x4[:,1])
Массив, кажется, в порядке:
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
но вместо
[1, 5, 9, 13]
для второй печати, я получаю эту ошибку:
TypeError: list indices must be integers, not tuple
Зачем возникает эта ошибка, что происходит не так?
Как примечание стороны, вам не нужны те дополнительные 'list' звонки. 'для i в списке (диапазон (4))' даст вам точные результаты, как только для i в диапазоне (4) ', за исключением того, что он будет тратить время и память на создание списка с теми же элементами, что и диапазон, который вы уже были. – abarnert
А, спасибо. Я помню, что список() был остатком попытки распечатать этот диапазон. – Betohaku
Просто убедившись. Многие люди не понимают, что большая часть Python построена вокруг общих итераций, и нет ничего особенного в списках; такие вещи, как диапазоны, строки, файлы и т. д., являются такими же итерабельными. (С другой стороны, Numpy не строится вокруг итерации, а вокруг операций литья по всем массивам или срезам сразу.) – abarnert