Форум сайта python.su
Подскажите как создать многомерный массив в питоне?
делаю так:
arr = [[]]
arr[0].append('test')
print arr
arr = [[]]
arr[0].append('test')
arr[1].append('qwe2')
print arr
arr.append('qwe2')В книгах тоже не могу найти создание многомерных массивов / кортежей…
IndexError: list index out of range
Офлайн
Очень просто:
massive = []
for x in range(5):
massive.append([])
for y in range(5):
massive[-1].append(x*y)
print massive[2][2]
print massive
massive = [[[],[],[],[],[]],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]
print massive
4
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12], [0, 4, 8,
12, 16]]
[[[], [], [], [], []], [], [], [], [], [], [], [], [], [], [], [], [], [], []]
Отредактировано (Дек. 1, 2010 19:26:14)
Офлайн
Пример из книги М.Лутц “Изучаем Python”
Один из простейших способов представления матриц (многомерных массивов) в
языке Python заключается в использовании вложенных списков.
Ниже приводится пример двухмерного массива размером 3x3, построенного на базе списков:
>>> matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> matrix[1]
[4, 5, 6]
>>> matrix[1][1]
5
>>> matrix[2][0]
7
Офлайн
В питоне нет массивов, но есть NumPy – библиотека позволяющая работать с многомерными массивами.
Офлайн
В питоне есть списки, разница только в любом типе элементов и скорости. Но если изначально известно, что нужен массив чисел - почему бы и не numpy.
Офлайн
Про скорость - подробнее, пожалуйста
Офлайн
При использовании NumPy вычислительные алгоритмы работают быстрее.
Офлайн
Быстрее будут только те алгоритмы, которые реализованы функциями numpy/scipy.
Бегать циклами и складывать элемент с элементом занимает столько же.
Но, в целом, идею понял. Спасибо.
Офлайн