首页 > 其他分享 >使用itertools 中的groupby 对字典数组进行分组后排序

使用itertools 中的groupby 对字典数组进行分组后排序

时间:2024-09-06 11:15:07浏览次数:12  
标签:攻击 itertools 分组 key 排序 data groupby 字典

有个需求需要对数据进行分组 然后对分组后的组内数据继续排序

from itertools import groupby

# 示例数据
data = [
    {'a': "攻击队1", 'b': '张三', 'c': 3},
    {'a': "攻击队1", 'b': '张三1', 'c': 1},
    {'a': "攻击队1", 'b': '张三2', 'c': 2},
    {'a': "攻击队2", 'b': '王五', 'c': 2},
    {'a': "攻击队2", 'b': '王五1', 'c': 4},
    {'a': "攻击队2", 'b': '王五2', 'c': 1},

    {'a': "攻击队3", 'b': 'z', 'c': 5},
    {'a': "攻击队3", 'b': 'w', 'c': 4},
    {'a': "攻击队3", 'b': 'v', 'c': 1}
]

# 首先根据'a'属性排序
data.sort(key=lambda x: x['a'])

# 使用groupby进行分组,并在每个组内按照'c'属性倒序排序
grouped_data = {
    key: sorted(group, key=lambda x: x['c'], reverse=True)
    for key, group in groupby(data, key=lambda x: x['a'])
}

# 输出结果
print(grouped_data)

标签:攻击,itertools,分组,key,排序,data,groupby,字典
From: https://www.cnblogs.com/gatling/p/18399861

相关文章

  • AT_arc151 题解 & 数组字典序大小比较求方案数
    很好的一题,做的时候没有一点思路,看了题解。看来做过的题目还是太少了,记录一下经验。注意到$1\leN\le2\times10^5$和$1\leM\le10^9$,如此庞大的数据,dp是肯定不行的。当字典序$A<B$时,当且仅当存在$i$,使得$\forallx\in[1,i)$,$A_x=B_x$且$A_i<B_i$。那么我们对于$......
  • 高基数 GroupBy 在 SLS SQL 中的查询加速
    作者:顾汉杰(执少)什么是高基数GroupBy简单来说,想要分析的数据,拥有超多的“唯一值计数”(DistinctCount),而我们需要对这些数据进行分组分析(如统计次数、排名、计算均值、分位值等)。高基数聚合计算在很多运营分析场景中都是刚需,它涉及对值不一样的海量数据进行分组聚合计算,以洞察用户行......
  • 高基数 GroupBy 在 SLS SQL 中的查询加速
    作者:顾汉杰(执少)什么是高基数GroupBy简单来说,想要分析的数据,拥有超多的“唯一值计数”(DistinctCount),而我们需要对这些数据进行分组分析(如统计次数、排名、计算均值、分位值等)。高基数聚合计算在很多运营分析场景中都是刚需,它涉及对值不一样的海量数据进行分组聚合计算,以洞察用......
  • 【字典序第k小】
    440.字典序的第K小数字在0~9的字典树(十叉树)上,首先计算以cur为前缀的小于等于n的节点个数有多少,即通过以cur为根找子树中小于等于n的节点个数如果子树个数小于k,那么就在同一层向右平移1,否则就跳到cur的一下层第一个子节点点击查看代码classSolution{publicint......
  • 字典元素的访问示例
    '''可以对字典对象进行迭代或者遍历,默认是遍历字典的键,如果需要遍历字典的元素必须使用字典对象的items()方法明确说明,如果需要遍历字典的值则必须使用字典对象的values()方法明确说明'''Dict={'age':18,'name':'Zheng','sex':'male'}#遍历输出字典的键foriteminDict:  ......
  • 字典get()方法使用案例
    '''字典对象提供了一个get()方法用来返回指定键对应的值,并且允许指定键不存在时返回特定的值'''Dict={'age':18,'sorce':'Zheng','sex':'male'}#输出键对应的值print(Dict['age'])print(Dict['sorce'])print(D......
  • 字典操作示例
    字典用{}标识,它是一个无序的“键(key):值(value)”对集合。在同一个字典中,键必须是唯一的,但值不必唯一,值可以是任何数据类型,但键必须是不可变的,如字符串,数字,元组首先需要先定义一个字典dict1={'Alice':'123','Beth':'456','Cecil':'abc'}输出123print(dict1['Alice'])增......
  • VBA字典与数组第十八讲:VBA中静态数组的定义及创建
    《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容......
  • PowerDesigner生成数据字典文档
    PowerDesigner生成数据字典文档目录1.设置报告2.导出报告3.查看报告设置报告删除多余的选项,只保留【LIstofTableColumns-表%PARENT%的栏的清单】选项。只显示Name、Code、DataType、Length、IsKey等列导出报告查看报告......
  • Python字典操作实现文章敏感词检索
    Python字典操作实现文章敏感词检索在许多应用程序中,特别是在社交平台、评论系统和内容管理系统中,需要对用户提交的文本进行敏感词检索,以确保内容的合规性。Python字典因其高效的键值对存储特性,非常适合用于实现敏感词的检索功能。本文将介绍如何使用Python字典来实现简单的敏感词......