【问题标题】:Iterate in a list and store values in dynamic variables迭代列表并将值存储在动态变量中
【发布时间】:2020-05-05 23:48:23
【问题描述】:

我有一个这样的列表 list = ["mkhg" , "ghkl" , "hjyu" , "jkkp"] 我想遍历这个列表并将值存储在动态变量中。例如,"mkhg" 存储在变量 a 中,"ghkl" 存储在变量 c 中等等。有没有办法破解这个?

【问题讨论】:

  • a,b,c,d = *list
  • 这能回答你的问题吗? How do I create a variable number of variables?
  • “动态变量”是什么意思?您的意思是事先不知道变量的名称吗?
  • @John Gordon 是这样的
  • 为什么需要动态变量?你能用dictlist吗?

标签: python list


【解决方案1】:
list = ["mkhg" , "ghkl" , "hjyu" , "jkkp"]

变量名会影响 bultin list 类型,不要那样做。

您可以使用exec 实现此目的,但这是一个非常肮脏的 hack,因此它更多的是一个有趣的事实而不是有用的模式:

l = ["mkhg" , "ghkl" , "hjyu" , "jkkp"]
variable_names = ["a","b","c","d"]

for name, value in zip(variable_names, l):
    exec(f"{name}=value")
print(a) # mkhg

大多数时候你会更好地使用字典:

values = {"a": "mkhg", "b": "ghkl"}
# or dynamically created

values = dict(zip(variable_names, l))

【讨论】:

  • 非常感谢!一个简单的问题 - 有没有办法在不事先声明变量名的情况下实现这一点?
  • 是的,变量名可以随心所欲地生成,但最后你需要一个字符串列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 2014-11-25
  • 2016-06-17
  • 1970-01-01
相关资源
最近更新 更多