出于好奇只是一个愚蠢的问题。
让我们说有一个元素为
的列表fruits_lst = ['apples','oranges','bananas','guavas']
现在可以创建单独的独立字典,但使用名称作为列表中元素的名称吗?
所需结果:
apples=dict()
oranges=dict()
bananas=dict()
guavas=dict()
我知道可以通过查看元素的名称来轻松地做到这一点,但是我想要实现的是,程序在某种程度上通过迭代选择了元素名称,然后创建了具有相同名称的空字典。可能吗?请引导我通过。.
答案 0 :(得分:5)
dict
代替globals
不建议使用全局变量。字典更干净,更容易维护。例如,使用dictionary comprehension:
fruits_lst = ['apples', 'oranges', 'bananas', 'guavas']
d = {fruit: {} for fruit in fruits_lst}
然后通过d['apples']
,d['oranges']
等访问特定的内部词典。
请参见this answer来解释为什么这样做有用,而请参见here来作为另一个示例。
答案 1 :(得分:2)
Python中的Evrythin是字典!甚至是范围!
您可以使用globals()
:
fruits_lst = ['apples','oranges','bananas','guavas']
globals().update({name : dict() for name in fruits_lst})
apples["foo"] = 10
print(apples)
结果:
{'foo': 10}
答案 2 :(得分:0)
这是一个简短的方法,但是让我警告您,这不是定义变量的好方法。
fruits_lst = ['apples','oranges','bananas','guavas']
for fruit in fruits_lst:
globals()[fruit] = dict()
现在您可以直接访问它们,
>>> apples
{}
>>> oranges
{}
以此类推...