我们说我们有一个清单:x = [5,5,2,5,5,3,3,4,4]。如何在此列表中返回仅发生一次的数字,即2?
在尝试解决Codewars上的问题时遇到了这个问题。最初我没有正确理解任务,但可以更容易地解决它,所以在解决之前仔细阅读:)
最后使用以下代码来解决它(它的不是整个解决方案,但它的一部分,在输入后创建字典后使用):
return [int(k) for k,v in d.items() if v%2==1][0]
答案 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]