2012-08-30 181 views
1

我想在python中使用for循環生成一系列(空)列表,並且我希望列表的名稱包含一個變量。例如Y0,Y1,Y2等理想情況下看起來像這樣:在python中創建一個名稱與變量的名稱

for a in range (0,16777216): 
global y(a)=[] 
+3

你不想做那。請參閱實際做法的答案。 –

+2

創建空的數據結構,你不會立即使用unpythonic。 Python能夠進行懶惰評估,尤其是在其迭代數據結構中。利用這一點! – kojiro

+0

我最後的意圖是通過創建一堆列表作爲y值和位置作爲x值來僞造表格。不得不使用另一個列表似乎有點kludgey。 – schwal

回答

7

不知道這是相當你想要什麼,但不能您只需創建一個列表的列表模擬相同的行爲?所以your_list[0]將對應於y0

7

你爲什麼不做一個列表字典?

y = {} 
for a in range (0,16777216): 
    y[a] = [] 

也爲簡潔:https://stackoverflow.com/a/1747827/884453

y = {a : [] for a in range(0,16777216)} 
+0

除了所有的鍵都是整數,所以也許列表或稀疏數組? – kojiro

+0

我錯過了一個,它不應該是一個字符串。固定。 –

+0

添加了詞典理解 –

2

答案是:沒有。請創建一個列表,以便您通過y[0]y[1]等訪問變量。有關信息,請參閱the accepted answer here

+0

您應該將此問題標記爲與您鏈接的問題重複。 –

0

也許你應該還檢查了defaultdict

form collection import defaultdict 

# This will lazily create lists on demand 
y = defaultdict(list) 

,如果你想在關鍵覆蓋約束默認__getitem__功能類似下面的...

def __getitem__(self, item): 
    if isintance(item, int) and 0 < item < 16777216: 
     return defaultdict.__getitem__(self, item) 
    else: 
     raise KeyError