Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:获取字典列表中最频繁的值_Python - Fatal编程技术网

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}