gpt4 book ai didi

python - 如果缺少键,我可以在字典列表上使用列表理解吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:55 25 4
gpt4 key购买 nike

我想计算特定值在字典列表中出现的次数。但是,我知道其中一些词典没有 key 。不过,我不知道哪个,因为这些是 API 调用的结果。

例如,此代码适用于 key1,因为所有词典都有该键。

from collections import Counter
list_of_dicts = [
{'key1': 'testing', 'key2': 'testing'},
{'key1': 'prod', 'key2': 'testing'},
{'key1': 'testing',},
{'key1': 'prod',},
{'key1': 'testing', 'key2': 'testing'},
{'key1': 'testing',},
]

print Counter(r['key1'] for r in list_of_dicts)

我得到了一个不错的结果

Counter({'testing': 4, 'prod': 2})

但是,如果我将最后一个打印更改为:

print Counter(r['key2'] for r in list_of_dicts)

它失败了,因为 key2 在一些字典中丢失了。

Traceback (most recent call last):
File "test.py", line 11, in <module>
print Counter(r['key2'] for r in list_of_dicts)
File "h:\Anaconda\lib\collections.py", line 453, in __init__
self.update(iterable, **kwds)
File "h:\Anaconda\lib\collections.py", line 534, in update
for elem in iterable:
File "test.py", line 11, in <genexpr>
print Counter(r['key2'] for r in list_of_dicts)
KeyError: 'key2'

如果字典不包含键,我如何使用列表理解来计算 key2 的值并且不会失败?

最佳答案

您可以显式检查 key2 是否在字典中:

Counter(r['key2'] for r in list_of_dicts if 'key2' in r)

关于python - 如果缺少键,我可以在字典列表上使用列表理解吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34710571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com