📜  Python – sorted() 和 sort() 之间的区别(1)

📅  最后修改于: 2023-12-03 14:46:07.335000             🧑  作者: Mango

Python – sorted() 和 sort() 之间的区别

在Python中,sorted()sort()是两种不同的方法,可用于对列表进行排序。它们的区别主要在于它们的功能和使用方式。

1. sort()

sort()是列表对象的方法,用于对原列表进行排序。它会直接修改原列表,将列表元素按照指定的排序规则进行排序。sort()没有返回值,因此无法赋值给其他变量。

用法示例:
numbers = [5, 2, 8, 1, 6]
numbers.sort()  # 对原列表进行排序
print(numbers)  # 输出结果: [1, 2, 5, 6, 8]
2. sorted()

sorted()是一个内置函数,用于对任意可迭代对象(例如列表、元组、字符串等)进行排序。它会返回一个新的已排序的列表,并不会修改原始对象。

用法示例:
numbers = [5, 2, 8, 1, 6]
sorted_numbers = sorted(numbers)  # 对列表进行排序,将排序结果赋值给新变量
print(sorted_numbers)  # 输出结果: [1, 2, 5, 6, 8]
print(numbers)  # 原列表不变,输出结果: [5, 2, 8, 1, 6]
3. 排序规则

无论是sort()还是sorted(),都可以通过传递参数来指定排序规则。默认情况下,它们按照升序排列,但也可以通过使用reverse=True参数来进行降序排列。

用法示例:
numbers = [5, 2, 8, 1, 6]

# 在 sort() 中指定排序规则
numbers.sort(reverse=True)  # 降序排列
print(numbers)  # 输出结果: [8, 6, 5, 2, 1]

# 在 sorted() 中指定排序规则
sorted_numbers = sorted(numbers, reverse=True)  # 降序排列
print(sorted_numbers)  # 输出结果: [8, 6, 5, 2, 1]
print(numbers)  # 原列表不变,输出结果: [5, 2, 8, 1, 6]
总结
  • sort()是列表对象的方法,会直接修改原列表,没有返回值。
  • sorted()是一个内置函数,会返回一个新的已排序的列表,不会修改原始对象。
  • 可以通过指定参数来自定义排序规则,包括升序/降序等。

在实际使用过程中,应根据具体需求选择sort()sorted()方法。如果需要修改原始列表并进行排序,使用sort()。如果希望保留原始列表并获得排序结果,使用sorted()

注:此回答使用Markdown格式进行书写,以便更好地展示和呈现代码片段和文本内容。