要生成出现在set a中的值的排序列表,这样可以:
a = [1,1,7,3,2,9,2]
b = list(set(a))
b.sort()
print b
但将两行放在一起,它返回None:
a = [1,1,7,3,2,9,2]
b = list(set(a)).sort()
print b
即使这些都是真的:
type(list(set(a))) is list
len(list(set(a))) > 0
我的问题是,为什么第二种方法只返回一个排序列表 - 为什么我必须将它们放在不同的行上(如第一种方法)?
答案 0 :(得分:6)
sort()
不会返回值,只会修改您传入的原始对象。
答案 1 :(得分:4)
sort()
对列表进行排序,但不返回任何结果。你最后得到一个很好的排序列表。所以你应该这样做:
b = list(set(a))
b.sort()
print(b)
答案 2 :(得分:4)
sort
是一种就地方法,意味着它不会返回值。它只是执行给定对象的方法,几乎就像来自其他语言的void
方法。如果您想要一行,请尝试:
b = sorted(list(set(a)))