sort()的返回值为None,因此以下代码不起作用:
def sorted_unique_items(a):
return list(set(a)).sort()
有什么想法可以提供更好的解决方案吗?
答案 0 :(得分:6)
答案 1 :(得分:1)
简单只需使用sorted()
方法:
data = [10,5,46,4]
sorted_data = sorted(data)
print "Sorted Data ::::",sorted_data
答案 2 :(得分:0)
上面的解决方案只适用于像字符串,整数和元组这样的可散列类型,但它不适用于像列表这样的不可用类型。
例如,如果您有一个列表data= [[2],[1],[2],[4]]
对于不可用类型的最佳解决方案是:
from itertools import izip, islice
values= [[2],[1],[2],[4]]
def sort_unique_unhashable(values):
values = sorted(values)
if not values:
return []
consecutive_pairs = izip(values, islice(values, 1, len(values)))
result = [a for (a, b) in consecutive_pairs if a != b]
result.append(values[-1])
return result
print sort_unique_unhashable(values)
答案 3 :(得分:-1)
有两种选择:
a = [2,34,55,1,22,11,22,55,1]
#First option using sorted and set.
sorted(set(a))
#second option using list and set.
list(set(a))