2014-09-01 35 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