【发布时间】:2022-01-21 13:28:05
【问题描述】:
我有一个输入array = [1,3,8,5,22,18,20,15,7,6,5]
我想对列表中从 8 到 20 的数字进行排序,包括 8 和 20。
为什么以下方法不起作用:
array[2:7] = array[2:7].sort() #TypeError: can only assign an iterable
同时
array[2:7] = sorted(array[2:7])
有效。
我从概念上理解sort() 对输入进行就地排序,而sorted() 创建一个新列表。但我无法理解这与上述内容有何关联。
是不是因为sort() 更改了索引,从而导致第一个实例不起作用?但这不可能,因为错误是 TypeError 必须是可迭代的?
【问题讨论】:
-
因为.sort返回None,sorted返回新列表。
-
明白了,谢谢