有多个字典如下。
dicts = {'key': 'a'},
{'key': 'b'},
{'key': 'c'},
{'key': 'a'},
{'key': 'a'},
{'key': 'd'},
{'key': 'a'},
{'key': 'c'},
{'key': 'a'},
{'key': 'a'},
{'key': 'c'},
{'key': 'd'},
{'key': 'a'},
{'key': 'a'},
{'key': 'b'},
{'key': 'b'},
{'key': 'd'},
{'key': 'b'},
{'key': 'b'},
{'key': 'd'},
{'key': 'b'},
{'key': 'b'},
{'key': 'c'}
我想做以下事
1)排除密钥值为a
的人
2)从a
中检索最频繁的值。
我认为可以使用for语句轻松处理它,但由于字典的数量实际上可能多达数万,我想知道可以尽快处理的代码。
答案 0 :(得分:2)
假设dicts
是列表或元组:
from collections import Counter
ans = Counter(dic['key'] for dic in dicts if not dic['key'] == 'a').most_common(1)[0]
无论a
是否是最受欢迎的价值,这都会有效。结果
('b', 7)
答案 1 :(得分:0)
假设dicts
实际上是list
的{{1}}:
1 /排除键值为'a'的那些
dicts
2 /从'a'中检索最频繁的值
(我假设你的意思是:一旦应用了最频繁的值)
filtered = [d for d in dicts if d["key"] != 'a']