【发布时间】:2014-06-13 16:21:42
【问题描述】:
我希望能够将我的 main 函数和 bin 值循环到这些字典中的某些键。所有六个字典都有相同的键名,但字典是唯一的。有没有更好的方法来 1. 初始化所有字典(即字典理解)或 2. 以更好的方式存储这些数据(即嵌套字典、命名元组......)
这是我当前的字典初始化:
TRI_1 = {'HF' : 0, 'NHF' : 0, 'TF' : 0, 'HM' : 0, 'NHM' : 0, 'TM' : 0}
TRI_2 = {'HF' : 0, 'NHF' : 0, 'TF' : 0, 'HM' : 0, 'NHM' : 0, 'TM' : 0}
TRV_1 = {'HF' : 0, 'NHF' : 0, 'TF' : 0, 'HM' : 0, 'NHM' : 0, 'TM' : 0}
TRV_2 = {'HF' : 0, 'NHF' : 0, 'TF' : 0, 'HM' : 0, 'NHM' : 0, 'TM' : 0}
TRV_3 = {'HF' : 0, 'NHF' : 0, 'TF' : 0, 'HM' : 0, 'NHM' : 0, 'TM' : 0}
TRV_4 = {'HF' : 0, 'NHF' : 0, 'TF' : 0, 'HM' : 0, 'NHM' : 0, 'TM' : 0}
编辑:我的解决方案。我以后会记得 g.d.d.c. 的方法,但我需要有初始零值的键,所以我可以简单地打印 TRI_1 并出现 {'key' : 0 }。这是 Padraic 的字典模板和 Aleksi 的理解的结合。感谢您提供简单的可扩展解决方案!
TEMP = dict.fromkeys('HF NHF TF HM NHM TM'.split(), 0)
TRI_1, TRI_2, TRV_1, TRV_2, TRV_3, TRV_4 = ([dict(TEMP) for i in range(6)])
【问题讨论】:
-
现有的手动创建有什么问题,你想做什么?
-
上面的代码没有问题,它可以工作。我很想知道是否有另一种方法可以自动创建所有字典,因为它们都初始化为相同的。 TRI_1、TRI_2 等。 = {} 将不起作用。我正在为 TRUE 实例创建一个位置,以便在我遍历我的主函数(未提供)时进行计数,并且我预计我的主函数中有更多条件,从而增加我将拥有的字典数量。
-
创建一本字典,然后复制?
-
字典有一个
copy()方法来制作浅拷贝,所以你可以在为具有不可变值的字典创建第一个之后使用它(就像这里的情况一样)。对于具有可变值的字典(如lists),您应该使用copy模块的copy.deepcopy()函数。
标签: python dictionary