如何创建一个循环,它将为我提供名称按数字递增的列表?

时间:2017-12-11 22:51:20

标签: python python-3.x

我需要一个能给我的代码

bin1= []
bin2= []
...
...
bin(Numbins)= []

这是我的尝试:

所以在我的代码中早些时候我创建了ListDiffList和DataList。 这是我遇到问题的代码的一部分

Numbins = (1/4)* len(DataList)

print(Numbins)

a1 = Numbins % len(PriceDiffList)

print(a1)

for i in range(1, a1):

    for 'n' in range (1, numbins):

        bin'n' = PriceDiffList[[(i-1)*Numbins] : [i*Numbins]]

        bin'n + 1' = bin'n'

        print (bin'n')

但这不起作用。以下是错误消息:

File "<ipython-input-16-1c0c8c3e71aa>", line 41
    bin'n' = PriceDiffList[[(i-1)*Numbins] : [i*Numbins]]
         ^
SyntaxError: invalid syntax

还有其他想法吗?我可以使用zip或附加,但我不确定如何正确地写出来。

2 个答案:

答案 0 :(得分:0)

如果你真的想要这样的变量名,你必须使用execeval。但是,我建议不要这样做,因为 eval是邪恶的

for n in range (1, numbins):
    exec('bin'+str(n)+' = PriceDiffList[[(i-1)*Numbins] : [i*Numbins]]')
    exec('bin'+str(n + 1)+' = bin'+str(n))
    print eval('bin'+str(n))

答案 1 :(得分:0)

这应该有帮助..

from collections import  defaultdict
some_dict=defaultdict(list)

    for n in range (1, numbins):
        some_d["bin"+str(n)] = PriceDiffList[[(i-1)*Numbins] : [i*Numbins]]

        some_d["bin"+str(n+1)]= some_d["bin"+str(n)]

    print (some_d["bin"+str(n)])