关于sort()方法和sorted()方法
>>> list1 =>>> list2 = list1[:]
>>> list2
>>> 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、列表的内建方法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` 的值仍然是 ``,即使我们已经对它使用了 `sorted()` 函数。
总结一下:
- `sort()` 方法直接在原列表上进行排序,不会创建新的列表,原列表会被修改为排序后的列表。
- `sorted()` 函数返回一个排序后的新列表,原列表不会被修改。 isdkz 发表于 2023-4-21 11:38
1. 列表的内建方法 `sort()` 是实现列表原地排序。原地排序意味着不会创建一个新的列表,而是在原有列表上 ...
= 吧 lzb1001 发表于 2023-4-21 13:18
= 吧
? isdkz 发表于 2023-4-21 13:26
?
看似差不多的两个列表,但实际却不相等 lzb1001 发表于 2023-4-22 08:25
看似差不多的两个列表,但实际却不相等
列表是有顺序的,顺序不一样肯定不相等呀
页:
[1]