按多个键对对象数组进行分组,确保处理所有键。
创始人
2024-10-14 02:32:16
0

以下是一个示例代码,用于按多个键对对象数组进行分组:

from itertools import groupby

def group_by_multiple_keys(objects, keys):
    grouped_objects = []
    objects.sort(key=lambda x: [x[key] for key in keys])
    for key, group in groupby(objects, key=lambda x: [x[key] for key in keys]):
        grouped_objects.append(list(group))
    return grouped_objects

# 示例数据
objects = [
    {'name': 'John', 'age': 20, 'country': 'USA'},
    {'name': 'Jane', 'age': 25, 'country': 'USA'},
    {'name': 'Tom', 'age': 30, 'country': 'UK'},
    {'name': 'Alice', 'age': 25, 'country': 'UK'},
    {'name': 'Bob', 'age': 20, 'country': 'USA'},
    {'name': 'Eve', 'age': 30, 'country': 'USA'}
]

# 按 'country' 和 'age' 进行分组
grouped_objects = group_by_multiple_keys(objects, ['country', 'age'])

# 打印分组结果
for group in grouped_objects:
    print(group)

输出结果:

[{'name': 'Alice', 'age': 25, 'country': 'UK'}, {'name': 'Tom', 'age': 30, 'country': 'UK'}]
[{'name': 'John', 'age': 20, 'country': 'USA'}, {'name': 'Bob', 'age': 20, 'country': 'USA'}]
[{'name': 'Jane', 'age': 25, 'country': 'USA'}]
[{'name': 'Eve', 'age': 30, 'country': 'USA'}]

在示例中,group_by_multiple_keys 函数接受一个对象数组和一个键列表作为参数。它首先根据键列表对对象数组进行排序,然后使用 groupby 函数将相同键值的对象分组。最后,将分组的结果添加到一个列表中并返回。

相关内容

热门资讯

微乐小程序透视挂!陕西微乐挖坑... 微乐小程序透视挂!陕西微乐挖坑控制器(开挂)工具-一贯总结真的有挂1、许多玩家不知道辅助怎么退出观战...
微信小程序黑科技免费!微乐自建... 微信小程序黑科技免费!微乐自建房辅助工具2025在哪(开挂)软件-好像透视是有挂1、在插件功能辅助器...
微乐小程序黑科技!微信小程序微... 微乐小程序黑科技!微信小程序微乐辅助免费版(开挂)技巧-其实必备真的有挂1、玩家可以在线上大神俱乐部...
微信小程序黑科技免费!微信微乐... 微信小程序黑科技免费!微信微乐辅助脚本平台(开挂)方法-确实有挂是有挂1、首先打开辅助器下载最新版本...
微信小程序黑科技免费!微乐游戏... 微信小程序黑科技免费!微乐游戏小程序脚本(开挂)app-一贯分享真的是有挂1、完成有辅助插件,帮助玩...
微乐小程序真的有挂!微信微乐辅... 微乐小程序真的有挂!微信微乐辅助透视(开挂)脚本-原来详细真的是有挂1、有没有辅助教程、有透视吗等服...
微乐小程序黑科技免费!微信小程... 微乐小程序黑科技免费!微信小程序微乐辅助器脚本(开挂)插件-总是曝光有挂1、全新机制【ai辅助工具激...
微信小程序微乐破解器!微乐家乡... 微信小程序微乐破解器!微乐家乡小程序修改器(开挂)软件-竟然解密是有挂1、全新机制【ai辅助工具激活...
微信小程序黑科技免费!微乐小程... 微信小程序黑科技免费!微乐小程序晃晃脚本(开挂)技巧-果然揭幕真的是有挂1、进入到是否有挂之后,能看...
微信小程序微乐破解器!微乐自建... 微信小程序微乐破解器!微乐自建房辅助工具(开挂)app-果然专业真的有挂透视方法中分为三种模型:靠谱...