我想从一组变量中收集一个列表,例如我做这个迭代:
x=10
func=[]
for i in range(10):
globals()['p%s' % i]=i**2+x*10
最后我想要一个动态变量列表
func=[p0,p1,p2,p3,p4,p5,p6,p7,p8,p9]
怎么可能呢?
答案 0 :(得分:1)
编号的变量名称表示您应该使用list,tuple或dict。例如,您可以使用list comprehension:
x = 10
func = [i**2+x*10 for i in range(10)]
或者,对于您在评论中提到的示例(假设您使用的是matplotlib):
import matplotlib.pyplot as plt
data = [[1,2,3], [3,2,1], [2,3,1]]
for i, datum in enumerate(data, 1):
plt.plot(datum, label='line {}'.format(i))
plt.legend()
plt.show()
答案 1 :(得分:0)
我认为你应该认真考虑将你的代码改写为p [0],p [1],p [2]而不是p0,p1,p2;但是,这应该会得到相同的结果:
x=10
func=[]
for i in range(10):
globals()['p%s' % i]=i**2+x*10
func.append(i**2+x*10)
答案 2 :(得分:0)
我认为您希望func list存储变量而不是值。
试试这个:
x=10
func=[]
for i in range(10):
globals()['p%s' % i]=i**2+x*10
for i in globals().keys():
if i.startswith('p') and len(i)==2:
func.append(i)
print func