代码之家  ›  专栏  ›  技术社区  ›  user2467011

在python中,有没有简单的方法可以从列表中返回单个值?[副本]

  •  -4
  • user2467011  · 技术社区  · 8 年前

    假设我们有一个列表:x=[5,5,2,5,5,3,3,4,4]。如何返回此列表中只发生一次的数字,即2?

    这个问题是在试图解决 "Find the odd int" 代码战问题。起初我没有正确理解任务,但本可以更轻松地解决它,因此在解决之前请仔细阅读:)

    最后,使用以下代码来解决它(它是 不是整个解决方案 ,但在使用输入创建词典后使用的部分):

    return [int(k) for k,v in d.items() if v%2==1][0]
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Tim Pietzcker    8 年前
    >>> x = [5, 5, 2, 5, 5, 3, 3, 4, 4, 8]
    >>> from collections import Counter
    >>> c = Counter(x)
    >>> [item[0] for item in c.items() if item[1]==1]
    [2, 8]
    
        2
  •  2
  •   Moinuddin Quadri    8 年前

    您可以使用 collections.Counter 为了实现这一点。在下面 列表理解 将返回列表中发生过一次的所有元素的列表:

    >>> from collections import Counter
    >>> x = [5, 5, 2, 5, 5, 3, 3, 4, 4]
    
    >>> [k for k, v in Counter(x).items() if v==1]
    [2]