按元素名称重新组织嵌套列表:将所有具有相同名称的元素放在一起
创始人
2024-08-23 01:30:13
0

假设我们有如下的嵌套列表结构:

nested_list = [
    {'name': 'foo', 'value': 1},
    {'name': 'bar', 'value': 2},
    {'name': 'foo', 'value': 3},
    {'name': 'baz', 'value': 4},
    {'name': 'bar', 'value': 5},
]

我们希望将所有 'foo'、'bar'、'baz' 元素分别放在一起,构建一个新的嵌套列表。

我们可以使用 defaultdict(list) 将具有相同名称的元素放在同一个列表中,然后使用字典的 values() 方法获取字典中所有的值。最后将所有的值合并成一个列表即可。

完整的代码示例如下所示:

from collections import defaultdict

nested_list = [
    {'name': 'foo', 'value': 1},
    {'name': 'bar', 'value': 2},
    {'name': 'foo', 'value': 3},
    {'name': 'baz', 'value': 4},
    {'name': 'bar', 'value': 5},
]

# 将具有相同名称的元素放在同一个列表中
d = defaultdict(list)
for item in nested_list:
    d[item['name']].append(item)

# 获取字典中所有的值
result = list(d.values())

# 合并所有的值为一个列表
new_nested_list = [item for sublist in result for item in sublist]

print(new_nested_list)

以上代码将输出以下结果:

[
    {'name': 'foo', 'value': 1},
    {'name': 'foo', 'value': 3},
    {'name': 'bar', 'value': 2},
    {'name': 'bar', 'value': 5},
    {'name': 'baz', 'value': 4}
]

相关内容

热门资讯

教程攻略!pokernow加注... 教程攻略!pokernow加注(辅助挂)竟然真的有挂(详细教程)(有挂总结)-哔哩哔哩关于poker...
3分钟了解!德州手机辅助软件,... 3分钟了解!德州手机辅助软件,德扑之星让系统给好牌,确实是真的有挂(有挂了解)-哔哩哔哩1、点击下载...
透明了解!哈糖大菠萝有挂(透视... WePoker透视辅助版本解析‌,透明了解!哈糖大菠萝有挂(透视)其实是真的有挂(详细教程)(有挂教...
透视免费(pokermaste... 透视免费(pokermaster有挂)软件透明挂(透视)的确真的有挂(有挂规律)-哔哩哔哩;精心打造...
记者揭秘!fishpoker大... 记者揭秘!fishpoker大菠萝外挂(透视)原来真的有挂(详细教程)(有挂介绍)-哔哩哔哩;fis...
透明教程!poker有外挂(透... 透明教程!poker有外挂(透视)确实是真的有挂(详细教程)(有挂透明)-哔哩哔哩poker有外挂平...
6分钟了解!gg扑克发牌系统,... 6分钟了解!gg扑克发牌系统,云扑克德州辅助器免费,果真是真的有挂(有挂规律)-哔哩哔哩1、完成云扑...
玩家必看攻略!德州全自动辅助(... 玩家必看攻略!德州全自动辅助(辅助挂)竟然是真的有挂(详细教程)(有挂详情)-哔哩哔哩;值得一提的是...
发现玩家(德扑ai智能机器人代... 发现玩家(德扑ai智能机器人代理)软件透明挂(辅助挂)的确是真的有挂(有挂技巧)-哔哩哔哩;亲真的是...
让我来分享经验!德州最新辅助器... 让我来分享经验!德州最新辅助器(透视)竟然真的有挂(详细教程)(有挂总结)-哔哩哔哩是一款可以让一直...