有没有简单的方法从python列表中返回单个值?

时间:2018-03-27 07:24:49

标签: python numbers

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

在尝试解决Codewars上的Calculation of the mean of a 10GB file问题时遇到了这个问题。最初我没有正确理解任务,但可以更容易地解决它,所以在解决之前仔细阅读:)

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

return [int(k) for k,v in d.items() if v%2==1][0]

2 个答案:

答案 0 :(得分:3)

>>> 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]

答案 1 :(得分:2)

您可以使用collections.Counter来实现此目的。 list comprehension 下面将返回列表中出现一次的所有元素的列表:

>>> 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]