gpt4 book ai didi

python - 删除这些元组列表中重复的列表组合的元组

转载 作者:行者123 更新时间:2023-11-30 22:09:01 24 4
gpt4 key购买 nike

我有 list

a = [([4, 7, 9], [3], 5.5), ([2, 5, 8], [3], 5.5), ([3], [4, 7, 9], 5.5), ([3], [2, 5, 8], 5.5)]

我正在尝试删除具有相同列表组合的重复元组。

例如,([4, 7, 9], [3], 5.5)([3], [4, 7, 9], 5.5) 是相同的。因此,删除重复元组后的输出将如下所示:

a = [([4, 7, 9], [3], 5.5), ([2, 5, 8], [3], 5.5)]

允许元组中列表的任何顺序。

编辑(基于@DYZ的反馈):不允许使用完全展平的元组。例如,不允许使用 (4,7,9,3,5.5)。输出仍应采用以下形式:([list 1], [list2],constant)

我尝试采用 Remove duplicated lists in list of lists in Python 中相关的方法,但我已经陷入了心理僵局..

是否可以在链接的问题中进一步修改代码,或者是否有更有效的方法来做到这一点?

最佳答案

按长度对a中的元素进行排序(将未列出的元素的长度设置为-1)。然后找到结果排序的唯一元素的索引,并使用这些索引到未排序的列表中。

asort = [sorted(aa, key= lambda x: len(x) if isinstance(x,list) else -1) for aa in a]
inds = [i for i,x in enumerate(asort) if asort.index(x)==i]
a = [a[i] for i in inds]

关于python - 删除这些元组列表中重复的列表组合的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52023038/

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