gpt4 book ai didi

Python。使用字典列表进行操作

转载 作者:太空狗 更新时间:2023-10-29 18:28:06 24 4
gpt4 key购买 nike

friend 们,我有一个字典列表:

my_list = 
[
{'oranges':'big','apples':'green'},
{'oranges':'big','apples':'green','bananas':'fresh'},
{'oranges':'big','apples':'red'},
{'oranges':'big','apples':'green','bananas':'rotten'}
]

我想创建一个删除部分重复项的新列表。

在我的例子中,必须删除这个字典:

{'oranges':'big','apples':'green'}

,因为它复制了更长的字典:

{'oranges':'big','apples':'green','bananas':'fresh'}
{'oranges':'big','apples':'green','bananas':'rotten'}

因此,期望的结果:

[
{'oranges':'big','apples':'green','bananas':'fresh'},
{'oranges':'big','apples':'red'},
{'oranges':'big','apples':'green','bananas':'rotten'}
]

怎么做?一百万!

最佳答案

我想到的第一个 [嗯,第二个,经过一些编辑..] 是这样的:

def get_superdicts(dictlist):
superdicts = []
for d in sorted(dictlist, key=len, reverse=True):
fd = set(d.items())
if not any(fd <= k for k in superdicts):
superdicts.append(fd)
new_dlist = map(dict, superdicts)
return new_dlist

给出:

>>> a = [{'apples': 'green', 'oranges': 'big'}, {'apples': 'green', 'oranges': 'big', 'bananas': 'fresh'}, {'apples': 'red', 'oranges': 'big'}, {'apples': 'green', 'oranges': 'big', 'bananas': 'rotten'}]
>>>
>>> get_superdicts(a)
[{'apples': 'red', 'oranges': 'big'},
{'apples': 'green', 'oranges': 'big', 'bananas': 'rotten'},
{'bananas': 'fresh', 'oranges': 'big', 'apples': 'green'}]

[最初我在这里使用了一个frozenset,以为我可以做一些聪明的集合操作,但显然没有想出任何东西。]

关于Python。使用字典列表进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com