【问题标题】:How to print only the duplicate elements in python list [duplicate]如何仅打印python列表中的重复元素[重复]
【发布时间】:2019-02-03 22:39:11
【问题描述】:

是否有任何内置方法可以打印 python 列表中存在的重复元素。

我可以为此编写程序。

我正在寻找的只是是否有任何内置方法或相同的东西。

例如:

对于输入[4,3,2,4,5,6,4,7,6,8]

我需要操作4,6

【问题讨论】:

  • 没有。没有内置函数
  • 你可以使用列表理解print([i for i in set(a) if a.count(i) > 1])
  • 有一个 numpy 函数来查找唯一元素,可用于此目的。见stackoverflow.com/questions/25264798/…

标签: python python-3.x python-2.7


【解决方案1】:

collections 中的 Counter 类可以解决问题

from collections import Counter


lst = [4,3,2,4,5,6,4,7,6,8]
d =  Counter(lst)  # -> Counter({4: 3, 6: 2, 3: 1, 2: 1, 5: 1, 7: 1, 8: 1})
res = [k for k, v in d.items() if v > 1]
print(res)
# [4, 6]

【讨论】:

    【解决方案2】:

    可能相关的重复问题:How do I find the duplicates in a list and create another list with them?

    简单回答:

    >>> l = [1,2,3,4,4,5,5,6,1]
    >>> set([x for x in l if l.count(x) > 1])
    set([1, 4, 5])
    

    【讨论】:

      【解决方案3】:

      您可以使用简单的内置功能:

      >>> a=[4,3,2,4,5,6,4,7,6,8]
      >>> b=[a[i] for i in range(len(a)) if a[i] in a[:i]][1:]
      >>> b
      [4, 6]
      

      【讨论】:

        【解决方案4】:

        这是一个简单的演示

            x = [1,2,3,5,3,2]
            y = []
            for a in x:
                if not a in y:
                    y.append(a)
            print(a)
        

        这就是它的工作原理。迭代x中的每个项目。如果当前迭代项目在y中不存在,则追加它

        【讨论】:

        • 这只是打印名为 x 的数组的最后一个数字。
        猜你喜欢
        • 2021-02-20
        • 2015-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多