gpt4 book ai didi

python - 将匹配的元组元素与其他元组的独特元素相结合

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:49 25 4
gpt4 key购买 nike

我想从与第一个元素上的其他元组匹配的元组中创建一个新的元组列表。当元组与第一个元素上的另一个元组匹配时,我还想将第三个元素添加到匹配的元组中。

数据示例(元组有 3 个字符串):

unique_3 = [(apple, banana, fruit),
(apple, banana, dessert),
(eggplant, fig, plant),
(eggplant, fig, purple),
(iris, jaguar, horse)]

我正在寻找的输出:

new_list =[(apple, banana, [fruit, dessert]), 
(eggplant, fig, [plant, purple]),
(iris, jaguar, horse)]

我只需要匹配元组的第一个元素。所以我尝试过这个:

new_list= [next(i for i, v in enumerate(unique_3) if v[0] == any(v[0]))]  

它返回 StopIteration 而没有结果,所以我在构建 new_list 方面还没有走得太远。

最佳答案

您可以使用groupby根据每个元组的第一个元素对项目进行分组,

from itertools import groupby

unique_sorted = sorted(unique_3, key = lambda x: x[0])

group_list = []
for key, group in groupby(unique_sorted, lambda x: x[0]):
group_list.append(list(group))

new_list = [(x[0][0], x[0][1], [y[-1] for y in x]) for x in group_list]

在每次 for 迭代中,groupby 返回具有相同第一个元组元素 key 的元素组 group 。元素必须连续才能分组,因此原始列表在第一步中根据每个元组中的第一个值进行排序。

关于python - 将匹配的元组元素与其他元组的独特元素相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46876034/

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