面试题答案
一键面试区别
- 返回值:
list.sort()
方法是对列表本身进行排序,它没有返回值,会直接修改原列表。例如:
my_list = [3, 1, 2]
result = my_list.sort()
print(result) # 输出 None
print(my_list) # 输出 [1, 2, 3]
sorted()
函数会返回一个新的已排序列表,原列表保持不变。例如:
my_list = [3, 1, 2]
new_list = sorted(my_list)
print(new_list) # 输出 [1, 2, 3]
print(my_list) # 输出 [3, 1, 2]
- 适用对象:
list.sort()
只能用于列表对象。sorted()
可以用于任何可迭代对象,例如列表、元组、集合等,并且返回的始终是一个列表。例如:
my_tuple = (3, 1, 2)
new_list = sorted(my_tuple)
print(new_list) # 输出 [1, 2, 3]
性能比较
在一般情况下,list.sort()
在性能上更优。原因如下:
list.sort()
是列表对象的方法,它直接在原列表上进行操作,避免了创建新列表的开销。而sorted()
函数每次都要创建一个新的列表对象来存储排序后的结果。当处理大型列表时,创建新列表所消耗的内存和时间成本会更加明显。所以,当不需要保留原列表,且对性能要求较高时,优先使用list.sort()
方法;当需要保留原列表,或者对非列表的可迭代对象进行排序时,使用sorted()
函数。