有个需求需要对数据进行分组 然后对分组后的组内数据继续排序
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