如何在python中使用for循环创建新字典

时间:2019-12-27 10:39:38

标签: python python-3.x dictionary

假设我有这样的字符串列表

list1 = ["x","y","z"]

那么如何通过迭代创建像x = {}y = {}z = {}这样的空字典

以下方法无效:

for i in list1:
    i = dict()

4 个答案:

答案 0 :(得分:2)

按照do not dynamiclly create variable from strings的建议


这就是说,您可以将其存储在dict中进行存储,然后为每个键关联一个空的字典

result = {}
for idx in list1:
    result[idx] = {}

print(result)
# {'x': {}, 'y': {}, 'z': {}}

答案 1 :(得分:1)

查看以下代码:

list1 = ["x","y","z"]
for i in list1:
    globals()[i] = dict()

这将为您提供:

x = {}
y = {}
z = {}

要检查输出及其类型,可以执行以下操作:

print(x)
print(type(x))
print(y)
print(type(y))
print(z)
print(type(z))

答案 2 :(得分:0)

在大多数情况下,建议不要动态创建变量名。 选中Creating dynamically named variables from user input

我不确定您要尝试做什么,但是这是否可行?

list1 = ["x","y","z"]
d = {}

for i in list1:
    d[i] = {}

对于每个字符串,您将获得一个带有空字典的字典。

答案 3 :(得分:-2)

这是一种解决方案:

for i in list1:
    locals()[i] = dict()