'numbers.sort()。reverse()'...为什么这些代码不能很好地结合在一起?

时间:2019-10-11 15:47:58

标签: python

我有一个这样的列表

numbers = [1 ,4,2,6,7,3]

我想按降序排列此列表。

numbers.sort().reverse()
print(numbers)

这是我尝试过的。但这不起作用,只是显示错误消息。

number.sort()
number.reverse()
print(numbers)

这很好,但是似乎太长了。

第一个有什么问题? 为什么在'numbers.sort().reverse()'的情况下不能附加两个功能? 为什么有些代码可以很好地结合在一起,而另一些却不能呢?

非常感谢您!

4 个答案:

答案 0 :(得分:2)

在Python中,$location = ($addressLocality && $addressRegion) ? $addressLocality.','.$addressRegion : ''; 具有内置参数sort()

reverse

它也不返回一个值;而是只操作被调用的列表,因此之后的numbers.sort(reverse=True) 将看不到要反转的值。

答案 1 :(得分:2)

这取决于函数返回什么。 list.sort返回None,因为它会修改列表到位而不是返回新列表。您可以将reverse=True传递给sort来完成所需的功能,而无需使用其他功能。您可以使用sorted函数执行相同的操作,该函数会生成一个新列表:

l = [1, 2, 1]
print(sorted(l, reverse=True)) # [2, 1, 1]
print(l) # [1, 2, 1]
l.sort(reverse=True)
print(l) # [2, 1, 1]

答案 2 :(得分:1)

那是因为sort不会返回列表,因此您不能对None type

应用sort

您正在对inplace进行排序,例如,更改相同实例

上数组的元素顺序

基本上,您在进行排序时不会收到数组的排序副本

list_ = [1, 2, 3, 4, 2, 3, 7]
print(list_.sort()) # None

要在同一行上执行所有操作,可以执行以下操作:

sorted(list_, reverse=True)

答案 3 :(得分:1)

这是因为sort仅对当前列表进行排序,但不返回任何内容。

使用类似new= sorted(l)[::-1]