Python 将带有编号方案的变量追加到列表时出现问题

Python 将带有编号方案的变量追加到列表时出现问题,python,string,list,Python,String,List,这是一个示例python代码。我在编程任务中面临的类似情况 这里的输出是['a1','a2'],而我需要输出为[0,1]。有人能帮我吗?用字典来解释: a1 = 0 a2 = 1 x = [] #here I have declared an empty list for i in range(2): x.append('a'+str(i+1)) #to append the variable with a numbering scheme print (x) 如果必须使用范围中已有

这是一个示例python代码。我在编程任务中面临的类似情况


这里的输出是
['a1','a2']
,而我需要输出为
[0,1]
。有人能帮我吗?

用字典来解释:

a1 = 0
a2 = 1

x = [] #here I have declared an empty list
for i in range(2):
    x.append('a'+str(i+1)) #to append the variable with a numbering scheme
print (x)

如果必须使用范围中已有的变量,则可以使用
locals()
将所有局部变量作为dict获取

a1=0
a2=1
x=[]#这里我声明了一个空列表
对于范围(2)中的i:
x、 append(locals()['a'+str(i+1)])#使用编号方案追加变量
打印(x)

可能重复的
x.append(i)
。。。。您附加了
'a{i+1}
…@错误语法自责在本例中,
i
是正确的,但他希望使用
a1
a2
的值。您的评论在更详细的示例中不起作用。标记的重复项应被视为比,并且您很可能做错了什么。您可能希望使用
dict
。这有助于表明应该不惜一切代价避免这种情况。那么,使用
本地
全局
而不是
评估
可能会更好(不那么糟糕?)。(哦,我打这个的时候你刚打了…)嗨,非常感谢你的帮助。我在编程方面没有太多经验。你给我的解决方案也和我预期的一样。我想知道我在这种编程中会有什么后果,因为您提到“非常糟糕的编程实践”eval/exec通常被滥用来执行不需要的任务,速度非常慢,会引发安全问题,…@AadithyaSathya我的第一个版本使用的是
eval
,这是不推荐的,因为它执行代码(将参数转换为python代码),这可能会导致严重的安全问题和bug。请在回答中添加解释
d = {'a1': 0, 'a2':1}
x = [] #here I have declared an empty list
for i in range(2):
    x.append(d['a'+str(i+1)]) #to append the variable with a numbering scheme
print (x)

vars = {
    'a1': 0,
    'a2': 1,
}

x = []

for var in vars.keys():
    x.append(vars[var])

print(x)