sort() 的返回值为 None 因此以下代码不起作用:
def sorted_unique_items(a):
return list(set(a)).sort()
任何想法更好的解决方案?
sort() 的返回值为 None 因此以下代码不起作用:
def sorted_unique_items(a):
return list(set(a)).sort()
任何想法更好的解决方案?
它很简单只需使用以下sorted()
方法:
data = [10,5,46,4]
sorted_data = sorted(data)
print "Sorted Data ::::",sorted_data
上述解决方案仅适用于字符串、整数和元组等可散列类型,但不适用于列表等不可散列类型。
例如,如果您有一个列表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)
有两种选择:
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))