2014-09-01 33 views
1

我試圖做一些簡單的像下面的Python:索引的左側和右側的分配

for k in range(0,2) 

outsetk = Reader(FileName='/dir/outset-'+str(k)+'.q') 

生成以下

outset0 = Reader(FileName='/dir/outset-'+str(0)+'.q') 
outset1 = Reader(FileName='/dir/outset-'+str(1)+'.q') 
outset2 = Reader(FileName='/dir/outset-'+str(2)+'.q') 

其中Reader是一些預定義的函數只有一個輸入。我知道作業的右側是正確的,但我不知道如何做左側。

+4

使用列表或字典,而不是獨立變量。 – kindall 2014-09-01 00:41:47

+0

如何用for循環生成list = [outset0,outset1,outset2,...]的變量列表? – 2014-09-01 00:50:24

+0

每次在循環中使用'list.append()'。 – kindall 2014-09-01 01:04:36

回答

1

嘗試使用字典來保存結果。事情是這樣的:

outsets = {} 

for k in range(0, 3): 
    outsets[k] = Reader(FileName='/dir/outset-' + str(k) + '.q') 

那麼你會訪問outset0像這樣:

outsets[0] # equivalent to your outset0 

你也可以做這樣的事情讓你的例子中提到的相同名稱:

outsets = {} 
name = 'outset{}' 

for k in range(0, 3): 
    outsets[name.format(k)] = Reader(FileName='/dir/outset-' + str(k) + '.q') 

要訪問outset0,您可以使用outsets['outset0']

如果你想使用一個列表,而不是,嘗試這樣的事情:

outsets = [] 

for k in range(0, 3): 
    outsets.append(Reader(FileName='/dir/outset-' + str(k) + '.q') 

然後你將訪問outset0以同樣的方式:

outsets[0] # equivalent to your outset0