我有一堆如下的变量,现在,我想通过遍历for循环来动态地构建一个变量,但令人惊讶的是,由于.format仅可用于字符串,因此无法使用。谁能分享您的想法,例如如何在Py中实现?任何帮助,将不胜感激。谢谢!
build_a="123"
build_b="456"
build_c="789"
build_src = ['a','b','c']
build_list = {}
for word in build_src:
build_list[word] = build_{word}.format(word=word)
答案 0 :(得分:2)
词典可能更适合您要实现的目标。
builds = {'a': "123", 'b': "456", 'c': "789"}
build_src = ['a','b','c']
build_list = {}
for word in build_src:
build_list[word] = builds.get(word, None)
print build_list
输出:
{'a': '123', 'c': '789', 'b': '456'}
答案 1 :(得分:1)
这是您想要的吗?
build_src = ['a','b','c']
build_list = {}
for word in build_src:
build_list[word] = 'build_'+word.format(word=word)
print(build_list)
输出:
{'a': 'build_a', 'b': 'build_b', 'c': 'build_c'}
答案 2 :(得分:0)
您可以使用类似这样的内容:
build_a="123"
build_b="456"
build_c="789"
build_src = ['a','b','c']
build_list = {}
for word in build_src:
globals()['build_new_var%s' % word] = word
它将为您提供想要的东西,像这样:
print(build_new_var_a)
print(build_new_var_b)
,输出将是:
a
b
但是使用字典会是更好的解决方案,但是如果出于特定原因需要使用字典,也可以这样做。
答案 3 :(得分:0)
在大多数答案中都建议使用dict
解决您的问题。
list
,通过一对zip
在这种情况下,tuple
由zip
函数形成,该函数返回一个 iterator ,该迭代器由{{1} 。该 iterator 通过保留项目的索引来合并两个dict
。
注意:如果您打算使用2个不同长度的list
,则可能有兴趣查看zip_longest。
list
keys = ['a', 'b', 'c']
values = [123, 456, 789]
build_src = zip(keys, values)
build_list = dict(build_src)
理解如果要在dict
构造过程中明确显示循环,可以使用dict
comprehension。
dict