在Python中使用list中的名称在循环中创建新变量

2024-05-14 05:33:38 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用列表中的名称创建新变量? 这:

name = ['mike', 'john', 'steve']   
age = [20, 32, 19]  
index = 0

for e in name:
    name[index] = age[index]
    index = index+1

当然不行。我该怎么办?

我想这样做:

print mike
>>> 20

print steve
>>> 19

Tags: namein名称列表forageindexjohn
3条回答

您可以使用globals()

globals()[e] = age[index]

不过,一般来说,你不想那样做;字典更方便。

people = {
    'mike': 20,
    'john': 32,
    'steve': 19
}

我认为dictionaries更适合这样做:

>>> name = ['mike', 'john', 'steve']   

>>> age = [20, 32, 19] 

>>> dic=dict(zip(name, age))

>>> dic['mike']
20
>>> dic['john']
32

但如果您仍然想动态创建变量,可以使用globals()[]

>>> for x,y in zip(name, age):
    globals()[x] = y


>>> mike
20
>>> steve
19
>>> john
32
name = ['mike', 'john', 'steve']   
age = [20, 32, 19] 
for i in range(len(name)):
    exec("%s = %d" %(name[i], age[i]))
print(mike)
print(john)
print(steve)

相关问题 更多 >