如何检索多个词典中的最大数量的项目

时间:2017-07-28 09:06:44

标签: python dictionary

有多个字典如下。

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语句轻松处理它,但由于字典的数量实际上可能多达数万,我想知道可以尽快处理的代码。

2 个答案:

答案 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']