如何在python中向变量添加字符或数字?
我有一些清单,如:如何在python中向变量添加字符或数字?,python,python-3.x,string,variables,add,Python,Python 3.x,String,Variables,Add,我有一些清单,如: all0 = [['mortem' 'cliffi' 'gear' 'lerp' 'control']] all1 = [['video' 'player' 'stori' 'book' 'think' 'narr' 'kill']] 我想把它打印出来,就像 num = 0 print(all+num) 但它不起作用。 如何在变量名中添加字符或数字?您可以使用eval eval('print(all{})'.format(num)) 但这真是糟糕的风格。不要这样
all0 = [['mortem' 'cliffi' 'gear' 'lerp' 'control']]
all1 = [['video' 'player' 'stori' 'book' 'think' 'narr' 'kill']]
我想把它打印出来,就像
num = 0
print(all+num)
但它不起作用。
如何在变量名中添加字符或数字?您可以使用eval
eval('print(all{})'.format(num))
但这真是糟糕的风格。不要这样做。您应该重构代码并使用for循环遍历列表,例如
all = [['mortem' 'cliffi' 'gear' 'lerp' 'control']]
all.append(['video' 'player' 'stori' 'book' 'think' 'narr' 'kill'])
for l in all:
print(l)
撇开一个想法有多糟糕可能真的很糟糕不谈,变量名只是Python dict中的关键。一行解决方案可能是: vars[new_name]=vars.popold_name 对于全局变量,以及 varssome_obj[新名称]=varssome_obj.popold_名称
对于某些对象的变量。嗯,我很确定您不需要也不真正想要它,但是Python提供了计算变量名的功能。简单地说,这是一个相当高级的特性,通常的方法是使用映射dict或序列列表或元组容器 在这里,您可以使用:
all = []
all.append([['mortem' 'cliffi' 'gear' 'lerp' 'control']])
all.append([['video' 'player' 'stori' 'book' 'think' 'narr' 'kill']])
num = 0
print(all[0])
顺便说一句,这种语法很奇怪,因为您实际上是在连接相邻的literal字符串
但如果你真的需要它,你可以建立一个变量插值器:
def getvar(name):
if name in locals():
return locals()[name]
elif name in globals():
return globals()[name]
else:
raise NameError(repr(name) + ' is not defined')
然后,您可以执行以下操作:
all0 = [['mortem' 'cliffi' 'gear' 'lerp' 'control']]
all1 = [['video' 'player' 'stori' 'book' 'think' 'narr' 'kill']]
num = 0
print(getvar("all%d" % num))
并按预期获得:
[['mortemcliffigearlerpcontrol']]
为什么不使用键0、1、。。。然后,您可以使用num轻松地从字典中获取和设置值。尽管要记住,所有这些都是一个内置函数。