2016-06-27 2 views
0

В настоящее время я использую python для обработки некоторых данных excel.Присвоить значение списку python без объявления диапазона

newSet = [[]] 
newSet[1][1]="abc" 
print(newSet[1][1]) 
IndexError: list index out of range 

Я не знаю, вы, ребята, использовали Lua раньше.

Lua может присвоить значение пустующему списку (список не объявляет диапазон).

Может ли python присваивать значение без объявления диапазона списка?

Или иначе это может сделать? Потому что я не знаю диапазон списка

+2

Индексы начинаются с 0 в питоне, и вам нужно будет добавить новое значение пустого списка, например: 'Newset [0] .append ('ABC')'. Если вы ищете редкие массивы, вы можете посмотреть словари. – AChampion

+0

Каждый раз, когда вам нужно назначить значение ('a [i] = b'), вы можете сравнить' i' и размер 'a'. Если 'a' слишком мал, вы можете увеличить его (используйте' append') – Ilya

ответ

-1

Поскольку вы не знаете диапазон списка заранее, лучше использовать collections.defaultdict, а не list в качестве вашего контейнера. Простой пример выглядит следующим образом:

from collections import defaultdict 

newSet = defaultdict(dict) 
newSet[1][1] = "abc" 
print(newSet[1][1]) 

В результате, как вы ожидали:

abc 
+1

Правильным решением является использование 'append()', а не для подражания произвольной индексации другого языка с помощью 'defaultdict'. – TigerhawkT3

+1

Если индекс имеет значение, 'defaultdict' будет правильным. – sighingnow

+0

это работает, thx – Rex