python - 在 Python 的字典中使用特定值初始化未知数量的键

标签 python python-2.7 dictionary

这是一种最佳实践问题。性能很重要。

我有一个字符串列表,字符串的数量不是常量(可能因查询而异)。我希望创建一个将这些字符串作为键的字典,并为它们分配一个静态值(该值是常量,并且对于列表中的所有键都是相同的)。喜欢:

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/

相关文章:

python - 在 Python 中将列表转换为元组

python - 为我的程序在 Python 中将 int 转换为枚举?

python - 如何用字典计算列表的大小?

Python 类 __init__ 确认

python 2.7 vs 3编码解码字节字符串

c# - 如何仅在 ConcurrentDictionary 存在的情况下通过键原子更新 ConcurrentDictionary 中的值

python 字典: How to get all keys with specific values

python - mypy 错误 - 尽管使用了 'Union',但类型不兼容

python - Scrapy:针对同一 URL 运行多个嵌套搜索

python - numpy - 创建二维矩阵的问题