python:获取字典列表中最频繁的值
我有一个字典列表,形状如下:python:获取字典列表中最频繁的值,python,Python,我有一个字典列表,形状如下: xs = [ { 'date': 1 }, { 'date': 1 }, { 'date': 2 }, { 'date': 1 }, { 'date': 4 }] 我需要得到最有代表性的日期,所有字典中最流行的日期 我的做法是: 按日期对列表排序 按日期分组 获取最大()比较组长度 例如: sorted_xs = sorted(xs, key=lambda x: x['date']) ys = groupby(sorted_xs, lambda x: x['dat
xs = [ { 'date': 1 }, { 'date': 1 }, { 'date': 2 }, { 'date': 1 }, { 'date': 4 }]
我需要得到最有代表性的日期,所有字典中最流行的日期
我的做法是:
sorted_xs = sorted(xs, key=lambda x: x['date'])
ys = groupby(sorted_xs, lambda x: x['date'])
???
这不起作用(而且很难看):
您知道python中有哪种方法更简单、更具表现力吗?使用a来计算每个日期:
from collections import Counter
date_counts = Counter(d['date'] for d in xs)
most_common = {'date': date_counts.most_common(1)[0][0]}
我假设您希望在这里再次以字典的形式获得输出,但您可以直接使用date\u计数。如果您只对日期值感兴趣,则最常见的(1)[0][0]
演示:
使用a来计算每个日期:
from collections import Counter
date_counts = Counter(d['date'] for d in xs)
most_common = {'date': date_counts.most_common(1)[0][0]}
我假设您希望在这里再次以字典的形式获得输出,但您可以直接使用date\u计数。如果您只对日期值感兴趣,则最常见的(1)[0][0]
演示:
这些字典中是否有其他键,或者输出
{'date':1}
足够了?还有其他键但不相关这些字典中是否有其他键,或者输出{'date':1}
足够了?有其他键但不相关为什么包括[1]
<代码>[0]似乎更合适。@Joost:我需要咖啡因。我现在就去买。为什么要包括[1]
<代码>[0]似乎更合适。@Joost:我需要咖啡因。我现在就去买。
>>> from collections import Counter
>>> xs = [{'date': 1}, {'date': 1}, {'date': 2}, {'date': 1}, {'date': 4}]
>>> date_counts = Counter(d['date'] for d in xs)
>>> {'date': date_counts.most_common(1)[0][0]}
{'date': 1}