从Python中的列表中删除重复值和类似值?

2024-06-02 12:53:49 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题是How do you remove duplicates from a list in whilst preserving order?的后续问题。在

我需要从列表中删除重复值和/或类似值:

我从这个问题的答案开始,然后申请:

def f7(seq):
    seen = set()
    seen_add = seen.add
    return [ x for x in seq if x not in seen and not seen_add(x)]

但是当我将它应用于我的数据/数组时,我得到的结论显然是错误的,因为粗体的值是相等的,应该删除一个

^{pr2}$

如何删除这些相同的值?在


Tags: infromyouaddnotorderdoseq
1条回答
网友
1楼 · 发布于 2024-06-02 12:53:49

从输出来看,您传递的seq包含2个元组。虽然元组内部的值可能相同,但元组本身(即序列的元素)不是,因此不会移除元组。在

如果您的目的是获得一个统一的唯一数字列表,您可以先将其展平:

seq = [ (1,2), (2,3), (1,4) ]
f7(itertools.chain(*seq))
=> [1, 2, 3, 4]

相关问题 更多 >