Python 列出已转换为变量的字符串

Python 列出已转换为变量的字符串,python,list,variables,Python,List,Variables,我想从一组变量中收集一个列表,例如,我执行以下迭代: 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] P>我认为你应该认真考虑把你的代码改写成P(0),P(1),P(2),而不是P0,P1,P2;但是,这应该会得到相同的结果: x=10 func=[] for i in range(10):

我想从一组变量中收集一个列表,例如,我执行以下迭代:

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]

<> P>我认为你应该认真考虑把你的代码改写成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)

我认为您希望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

编号的变量名表示您应该使用列表、元组或dict。例如,在这里您可以使用:


或者,对于您在注释中提到的示例(假设您使用的是matplotlib):


其实这只是一个例子。我想在最后制作一组绘图和图例,我需要收集变量名来完成这项工作
p1,=绘图([1,2,3])p2,=绘图([3,2,1])p3,=绘图([2,3,1])图例([p2,p1,p3],“第2行”,“第1行”,“第2行”)
@Dalek不,你需要添加一层抽象。您需要1个列表(由3个元素组成),而不是3个变量。每当你把一个数字放在一个变量名中时,想想你是否可以把它写成一个列表。会更好的。我想应该有办法列出变量名?!!你可以,但你不应该想。使用动态命名的变量编程总是一件痛苦的事情,因为它迫使您使用笨拙的字符串格式来访问变量。此外,它比索引到列表、元组或dict要慢。有更好的方法来做你想做的事情。我得到了这个错误
TypeError:“PathCollection”对象不可编辑
,因为这显然是一个不同的问题,请发布一个新问题。好吧,我没有为我的原始问题得到充分的答案,但我会做的!
x = 10
func = [i**2+x*10 for i in range(10)]
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()