所以list2=list1.sort()为啥不对
时间: 2023-09-10 18:04:42 浏览: 46
### 回答1:
A:因为list1.sort()是在原地对list1进行排序,它不会返回一个新的列表,而是直接修改list1的顺序。因此,list2 = list1.sort()实际上把list2赋值为None,而不是排序后的列表。要创建一个新的已排序列表,应该使用sorted()函数,例如:list2 = sorted(list1)。
### 回答2:
list2 = list1.sort()不对的原因是因为sort()方法没有返回值,它对原列表进行排序操作,并且改变了原列表的顺序。所以将sort()方法的结果赋值给list2,并没有将排序后的结果赋给list2,而是赋给了None。因此,正确的方式应该是先对list1进行排序操作,然后再将排序后的结果赋值给list2。可以按如下方式来实现:
list1.sort()
list2 = list1.copy()
或者可以使用sorted()函数来实现:
list2 = sorted(list1)
这样就可以正确地将排序后的结果赋值给list2了。
### 回答3:
list1.sort()是一个在原列表上进行修改操作的方法,并且返回值为None。因此,list2=list1.sort()不正确。
当我们调用list1.sort()时,会对list1进行排序操作,但是它不会创建一个新的列表。它直接对原始列表进行排序,因此它没有返回任何值或新的列表。
因此,将list1.sort()赋值给list2时,list2实际上是获取了None值,而不是经过排序的列表。正确的做法是先使用list1.sort()对list1进行排序操作,然后再将排序后的list1赋值给list2,即list2=list1。
正确示例:
list1 = [3, 1, 2]
list1.sort()
list2 = list1
print(list2) # 输出:[1, 2, 3]
在上述示例中,我们首先通过list1.sort()对list1进行排序,然后将排序后的list1赋值给list2。这样,list2就是排序后的列表[1, 2, 3]。