|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
>>> list1 = [1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> list2 = list1[:]
>>> list2
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> list1.sort() # 无返回值
>>> list1
[-98, 0, 1, 13, 18, 32, 34, 54, 76] # 按排序后显示
>>> sorted(list2) # 有返回值
[-98, 0, 1, 13, 18, 32, 34, 54, 76] # 返回排序后的列表
>>> list2
[1, 18, 13, 0, -98, 34, 54, 76, 32] # 仍是原来的排列顺序
小甲鱼教材上说:
1、列表的内建方法sort()是实现列表原地排序 --- 我没看懂和理解,请大神结合上面的例子说明
2、而sorted()是返回一个排序后的新列表 --- 是指sorted(list2) 的返回值吗?但 list2返回的结果还是原来的列表顺序
1. 列表的内建方法 `sort()` 是实现列表原地排序。原地排序意味着不会创建一个新的列表,而是在原有列表上直接进行排序。也就是说,调用 `sort()` 方法后,原列表将被修改为排序后的列表。在您给出的例子中,`list1.sort()` 就是在 `list1` 上进行原地排序,排序后的 `list1` 变为 `[-98, 0, 1, 13, 18, 32, 34, 54, 76]`。原来的 `list1` 已经被改变。
2. 而 `sorted()` 是返回一个排序后的新列表。`sorted()` 函数会创建一个新的列表,包含原列表中的所有元素,并按顺序排列。在您给出的例子中,`sorted(list2)` 的返回值是一个新的排序后的列表 `[-98, 0, 1, 13, 18, 32, 34, 54, 76]`。这里需要注意的是,`sorted()` 函数不会改变原列表。在例子中,`list2` 的值仍然是 `[1, 18, 13, 0, -98, 34, 54, 76, 32]`,即使我们已经对它使用了 `sorted()` 函数。
总结一下:
- `sort()` 方法直接在原列表上进行排序,不会创建新的列表,原列表会被修改为排序后的列表。
- `sorted()` 函数返回一个排序后的新列表,原列表不会被修改。
|
|