【问题标题】:How to make a variable from each element of the list? [duplicate]如何从列表的每个元素中创建一个变量? [复制]
【发布时间】:2020-02-29 16:31:11
【问题描述】:

例如,我有 2 个列表 ['name', 'age', 'id']['John', '20', '441']。 我想得到输出:

name = John
age = 20
id = 441

即从1个列表中的元素来制作变量的名称。 鉴于列表 1 的元素总是不同的。

更新:我想获得一个值为 "John" 的变量 name、值为 '20'age 等等。

【问题讨论】:

  • 您能解释一下为什么需要创建变量吗?查找字典。
  • 您要创建变量,还是要创建代码来创建变量? IE。你想要的输出是变量name,值为"John",还是字符串"name = 'John'"
  • 值为“John”的变量名

标签: python python-3.x string list variables


【解决方案1】:

您可以为此使用字典。

vars=['name', 'age', 'id']
dets=['John', '20', '441']
details={k:v for k,v in zip(vars,dets)}

你可以这样做而不是听写理解。

dict(zip(vars,dets))

details['name']
#'John'
details['age']
#'20'

不推荐,但可以使用globals

for var, det in zip(vars,dets):
    globals()[var]=det

>>>name
'John'
>>>age
'20'

【讨论】:

  • 更简洁的方法是直接使用dict 构造函数:dict(zip(vars, dets))
  • @Tomerikoo 是的,但我实际上发布了相同的内容,但在这个问题stackoverflow.com/a/60464003/12416453 中没有得到很好的接受,所以我发布了这个。我会dict(zip(vars,dets)) 来回答这个问题,因为它看起来更像是pythonic,但有些人可能会对此争论不休。
  • @Ch3steR,.. 这并不意味着紧凑型更差。
  • 我没有看到任何反对票或反对票...是什么让您说它不受欢迎?这是一种完美的 Pythonic 方式
  • 啊,我明白了。好吧,这可能是因为那里的情况有点不同,因为字典已经存在,所以有人可能会争辩说它可能会导致副作用。但这正是使用 dict(zip(...)) 构造的用例...
【解决方案2】:

程序:

label = ['name', 'age', 'id']
val = ['John', '20', '441']

for x,y in zip(label,val):
    print(x,y)

输出:

name John
age 20
id 441

【讨论】:

  • 该问题现已更新,以阐明其意图是定义变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 2013-02-01
相关资源
最近更新 更多