集要求其项是可 哈希的
。在Python预定义的类型中,只有不可变的类型(例如字符串,数字和元组)是可哈希的。可变类型(例如列表和字典)不可散列,因为更改其内容将更改散列并破坏查找代码。
既然你反正排序列表,只需将去除重复 之后 的列表已经排序。这很容易实现,不会增加运算的算法复杂性,也不需要将子列表更改为元组:
def uniq(lst): last = object() for item in lst: if item == last: continue yield item last = itemdef sort_and_deduplicate(l): return list(uniq(sorted(l, reverse=True)))



