我有两个变量如下:
a = "1"
b = "21"
和一个清单:
['a', 'b', '3', '4', '5', '64']
我将如何用列表中的值替换变量名,例如:
['1', '21', '3', '4', '5', '64']
我有两个变量如下:
a = "1"
b = "21"
和一个清单:
['a', 'b', '3', '4', '5', '64']
我将如何用列表中的值替换变量名,例如:
['1', '21', '3', '4', '5', '64']
我猜你的意思不是你只需要给出变量的名称,而不是字符串?
你可以做一个“怪物”,例如:
a = '1'
b = '21'
els = ['a', 'b', '3', '4', '5', '64']
print [vars().get(el, el) for el in els]
# ['1', '21', '3', '4', '5', '64']
但是,如果您处于正在这样做或正在考虑这样做的情况下-是时候再考虑一下了
首先构造一个字典进行查找?
lookup = {'a':'1', 'b':'21'}
那么你就可以开始了:
print [lookup[x] if x in lookup else x for x in c ]
['1', '21', '3', '4', '5', '64']
您只需删除引号:
a = "1"
b = "21"
[a, b, "3", "4", "5", "64"]
输出将是["1", "21", "3", "4", "5", "64"]
作为其他答案的替代方法,eval
如果变量名称必须作为字符串存在于列表中,您可以使用。对于您的示例,以下代码:
eval(list[0])
将评估为 1(前提list
是您的列表的变量)。
但是你必须小心,因为如果变量不存在,它会抛出一个NameError
,如果你不传递一个字符串、字节或代码对象,它会抛出一个TypeError
。