通过其特定键将列表中的字典项分组

阿尔达·库特鲁(Arda Kutlu)

我有以下示例列表:

my_list = [
    {
        'data': {
            'color': 'white'
        },
        'name': 'item1'
    },
    {
        'data': {
            'color': 'white',
            'property': 'value1'
        },
        'name': 'item2'
    },
    {
        'data': {
            'color': 'white',
            'property': 'value1'
        },
        'name': 'item3'
    },
    {
        'data': {
            'color': 'black',
            'property': 'value1'
        },
        'name': 'item4'
    },
    {
        'data': {
            'color': 'white',
            'property': 'value1',
            'custom': 'valueA'
        },
        'name': 'item5'
    },
    {
        'data': {
            'color': 'white'
        },
        'name': 'item6'
    },
]

我想将词典项目的名称值与共享相同“数据”值的项目的其他名称值分组。

所以我想为这个特定的例子得到这个结果: result = [('item1', 'item6'), ('item2', 'item3')]

根据要求更新:我尝试使用groupby分隔它们,但没有成功:

import itertools
for key, group in itertools.groupby([item["data"] for item in my_list]):
    print("-"*10)
    for data in group:
        print(data)
安德烈·凯斯利(Andrej Kesely)
out = {}
for d in my_list:
    out.setdefault(tuple(d['data'].items()), []).append(d['name'])

out = [v for v in out.values() if len(v) > 1]
print(out)

印刷品:

[['item1', 'item6'], ['item2', 'item3']]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python中通过单个字典的键将一堆列表分组

通过特定键计算字典中的重复项

通过键列表访问嵌套字典项?

通过特定键合并字典列表

如何通过使用列表的索引作为键和列表的项作为值来将列表添加到字典中?

字典中的特定键出现后,将字典列表拆分为子列表

将字典列表分组为基于键的值列表

如何根据字典中的部分键对字典列表进行分组

通过多个键对字典列表进行分组和汇总

通过理解更新列表中的字典项

通过列表对键中的值进行分组

如何在Python中添加一个带有字典的特定键项的列表

将列表中的元素分组以基于数字作为键来创建字典

Python:将字典中的列表项分组

通过多个动态键将字典分组

在列表中将“继续”项分组。将状态存储在itertools groupby键功能中是否不好?

在字典中查找值列表并重新调整其键

通过在“;”处拆分值来为字典列表中的特定键的值计数器

Python在字典列表中按多个键分组

通过键列表从嵌套的python字典中删除键

如何计算字典列表中特定字典键的出现次数

将字典项组合到字典列表中

PHP:通过字典列表中的键获取值列表

按该列表中的特定键对列表进行分组

将多列分组为键:熊猫中的值字典

Python 返回与字典列表中特定键关联的值列表

如果列表中的项在该字典中,则从字典返回新的键列表,否则返回该项?

如何反转按公用值分组的字典项和列表键

通过特定键将字典粘贴至Excel