Python 将带有编号方案的变量追加到列表时出现问题
这是一个示例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) 如果必须使用范围中已有
这里的输出是
['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)