这是一种最佳实践问题。性能很重要。
我有一个字符串列表,字符串的数量不是常量(可能因查询而异)。我希望创建一个将这些字符串作为键的字典,并为它们分配一个静态值(该值是常量,并且对于列表中的所有键都是相同的)。喜欢:
my_keys = ['AKey', 'AnotherKey', 'OneMore']
default_Value = dict({'count':0, 'basePrice': 0})
预期输出:
{'AKey': {'count':0, 'basePrice': 0}, 'AnotherKey': {'count':0, 'basePrice': 0}, 'OneMore': {'count':0, 'basePrice': 0}}
每个值字典 ({'count':0, 'basePrice': 0}
) 必须是一个单独的对象,而不是单个字典对象的引用。
我正在寻找一些except for
循环。
我尝试了以下方法,当键数已知时它起作用了。
dict(zip(my_keys, [dict(), dict(), dict()]))
但是由于 my_keys
中的项目数量会发生变化,因此这种方法失败了。
最佳答案
你无法避免循环;字典理解是从具有可变值的一系列键创建字典的最佳实践:
{key: {'count':0, 'basePrice': 0} for key in my_keys}
对于 Python 2.6 及更早版本,使用生成器表达式和 dict()
构造函数:
dict((key, {'count':0, 'basePrice': 0}) for key in my_keys)
为完成起见,对于不可变的默认值,dict.fromkeys()
是更好更快的选择。
关于python - 在 Python 的字典中使用特定值初始化未知数量的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16418947/