gpt4 book ai didi

python - 根据条件从字典列表中生成唯一的字典对

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:35 27 4
gpt4 key购买 nike

我有一个字典列表,我是这样排序的:

the_list = [
{'name': 'bobby', 'sport_type': 'football'},
{'name': 'jenny', 'sport_type': 'football'},
{'name': 'karl', 'sport_type': 'football'},
{'name': 'bobby', 'sport_type': 'hokey'},
{'name': 'jenny', 'sport_type': 'hokey'},
{'name': 'karl', 'sport_type': 'hokey'},
{'name': 'bobby', 'sport_type': 'tennis'},
{'name': 'jenny', 'sport_type': 'tennis'},
{'name': 'karl', 'sport_type': 'tennis'},
]

列表有n个长度,因此会有更多具有不同name key和sport_type key的dicts。我需要创建一个基于相同 sport_type 和 != 不同名称的唯一字典对列表。像这样:

need_to = [
[{'name': 'bobby', 'sport_type': 'football'},{'name': 'jenny', 'sport_type': 'football'}],
[{'name': 'jenny', 'sport_type': 'football'},{'name': 'karl', 'sport_type': 'football'}],
[{'name': 'bobby', 'sport_type': 'football'},{'name': 'karl', 'sport_type': 'football'}],
[{'name': 'bobby', 'sport_type': 'hokey'},{'name': 'jenny', 'sport_type': 'hokey'}],
[{'name': 'jenny', 'sport_type': 'hokey'},{'name': 'karl', 'sport_type': 'hokey'}],
[{'name': 'bobby', 'sport_type': 'hokey'},{'name': 'karl', 'sport_type': 'hokey''}],
[{'name': 'bobby', 'sport_type': 'tennis'},{'name': 'jenny', 'sport_type': 'tennis'}],
[{'name': 'jenny', 'sport_type': 'tennis'},{'name': 'karl', 'sport_type': 'tennis'}],
[{'name': 'bobby', 'sport_type': 'tennis'},{'name': 'karl', 'sport_type': 'tennis'}],
]

所以不存在反向重复a+b,b+a。我怎么做?

最佳答案

您可以使用 itertools.combinations为此。

>>> import itertools
>>> [c for c in itertools.combinations(the_list, 2) if c[0]['sport_type'] == c[1]['sport_type']]
[({'name': 'bobby', 'sport_type': 'football'},{'name': 'jenny', 'sport_type': 'football'}),
({'name': 'bobby', 'sport_type': 'football'},{'name': 'karl', 'sport_type': 'football'}),
({'name': 'jenny', 'sport_type': 'football'},{'name': 'karl', 'sport_type': 'football'}),
({'name': 'bobby', 'sport_type': 'hokey'},{'name': 'jenny', 'sport_type': 'hokey'}),
({'name': 'bobby', 'sport_type': 'hokey'},{'name': 'karl', 'sport_type': 'hokey'}),
({'name': 'jenny', 'sport_type': 'hokey'},{'name': 'karl', 'sport_type': 'hokey'}),
({'name': 'bobby', 'sport_type': 'tennis'},{'name': 'jenny', 'sport_type': 'tennis'}),
({'name': 'bobby', 'sport_type': 'tennis'},{'name': 'karl', 'sport_type': 'tennis'}),
({'name': 'jenny', 'sport_type': 'tennis'},{'name': 'karl', 'sport_type': 'tennis'})]

关于python - 根据条件从字典列表中生成唯一的字典对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59069621/

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