如何通过遍历python中的for循环来动态构建变量

时间:2019-04-26 06:00:24

标签: python string variables

我有一堆如下的变量,现在,我想通过遍历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)

4 个答案:

答案 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解决您的问题。

选项1:感谢list,通过一对zip

在这种情况下,tuplezip函数形成,该函数返回一个 iterator ,该迭代器由{{1} 。该 iterator 通过保留项目的索引来合并两个dict

注意:如果您打算使用2个不同长度的list,则可能有兴趣查看zip_longest

list

选项2:使用keys = ['a', 'b', 'c'] values = [123, 456, 789] build_src = zip(keys, values) build_list = dict(build_src) 理解

如果要在dict构造过程中明确显示循环,可以使用dict comprehension

dict