Python 重复元素排序

Python 重复元素排序,python,python-3.x,Python,Python 3.x,我试图做的是编写一个函数sort_repeatedL,它返回列表L中重复元素的排序列表 比如说, >>sort_repeated([1,2,3,2,1]) [1,2] 但是,我的代码不能正常工作。我在代码中做错了什么 def f5(nums): count = dict() if not nums: for num in nums: if count[num]: count[num] += 1

我试图做的是编写一个函数sort_repeatedL,它返回列表L中重复元素的排序列表

比如说,

>>sort_repeated([1,2,3,2,1])
[1,2]
但是,我的代码不能正常工作。我在代码中做错了什么

def f5(nums):
    count = dict()
    if not nums:
        for num in nums:
            if count[num]:
                count[num] += 1

            else:
                count[num] = 1
        return sorted([num for num in count if count[num]>1])
    return []
if count[num]:如果字典没有键,则将失败。看看这个网站上的各种食谱,用一个来代替


此外,如果nums是空序列,则not nums为真,这意味着将永远不会执行循环体。反转条件。

使用计数器检查值是否大于1

from collections import Counter

def sort_repeated(_list):
    cntr = Counter(_list)
    print sorted([x for x in cntr.keys() if cntr[x] > 1])

sort_repeated([7, 7, 1, 2, 3, 2, 1, 4, 3, 4, 6, 5])
>> [1, 2, 3, 4, 7]

事实上,这就是我的本意。”如果count[num]”:如果字典没有键,则将失败,然后它将转到“count[num]=1”。此外,如果nums为空,则我打算执行循环体。您误解了。并不是条件是错误的,而是代码会崩溃。谢谢你的帮助。我会弄清楚的。你的预期结果是[1,2,3]还是[1,1,2,2,3]?[1,2]正如我上面写的那样。