Найти - Пользователи
Полная версия: Резиновый массив.
Начало » Python для новичков » Резиновый массив.
1
Wahlberg
Проблема такая, нужно создать резиновый массив данных, почитал о листе, по идеи подходит, но как его создать такой хороший я так и не понял. Суть в том что мне нужен двумерный массив и свободная индексация по нему, либо создать его, допустим, размером 1000х1000, как-то я не очень впечтлён был способом со скобочками для решения таких проблем. Тип данных вводимый в массив должен быть striing.

Спасибо.
JOHN_16
Решение “в лоб”
l=[]
for i in xrange(1000):
    l.append(['']*1000)
Wahlberg
спасибо
doza_and
JOHN_16
Решение “в лоб”
А почему тогда не
n=1000
[[""] * n] * n
Подумайте, может вам больше подойдет более резиновая реализация
a = {}
a[(5,8)] = "asdas"
print( a[(5,8)] )
py.user.next
doza_and
А почему тогда не
n=1000
[[""]*n]*n
>>> n = 10
>>> m = [[""] * n] * n
>>> m
[['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '']]
>>> m[0][0] = None
>>> m
[[None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', ''], [None, '', '', '', '', '', '', '', '', '']]
>>>
doza_and
py.user.next
А почему тогда не
Спасибо, забавно, надо обдумать.
>>> l=map(list,[("",)*3]*3)
>>> l
[['', '', ''], ['', '', ''], ['', '', '']]
>>> map(id,l)
[19461704, 19461824, 19461744]

Я конечно предпочитаю другой вариант. Его пригодность зависит от целей ТС.
import numpy as np
l=np.zeros((3,3),dtype=np.dtype(object))
py.user.next
>>> n = 10
>>> m = [[0] * n for _ in range(n)]
>>> m[0][0] = 1
>>> m
[[1, 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, 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]]
>>>

numpy надо устанавливать
а map даёт список только во втором питоне
bismigalis
в питоне есть встроенные массивы
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB