📅  最后修改于: 2023-12-03 15:24:42.681000             🧑  作者: Mango
在 python 中,我们可以使用内置函数 sorted()
或方法 sort()
对列表进行排序。两者都可以实现对列表的排序,但是它们的使用场景略有不同。
sorted()
函数返回一个新的已排序的列表,不会修改原有列表。它需要一个可迭代对象作为输入,并返回一个列表。
fruits = ["apple", "banana", "cherry", "orange"]
sorted_fruits = sorted(fruits)
print("原始列表:", fruits)
print("排序后的列表:", sorted_fruits)
上述代码的输出结果为:
原始列表:['apple', 'banana', 'cherry', 'orange']
排序后的列表:['apple', 'banana', 'cherry', 'orange']
我们发现,原始列表并未改变,而是返回了一个新的已排序的列表。sorted()
函数还有一个可选参数 reverse
,默认值为 False
,如果设置为 True
,则列表将被反向排序。
fruits = ["apple", "banana", "cherry", "orange"]
reverse_sorted_fruits = sorted(fruits, reverse=True)
print("原始列表:", fruits)
print("反向排序后的列表:", reverse_sorted_fruits)
上述代码的输出结果为:
原始列表:['apple', 'banana', 'cherry', 'orange']
反向排序后的列表:['orange', 'cherry', 'banana', 'apple']
sort()
方法与 sorted()
函数类似,也可以实现对列表的排序,但是它是在原有列表基础上进行修改,不返回新的列表。它是一个就地排序算法,不需要额外的内存空间。
fruits = ["apple", "banana", "cherry", "orange"]
fruits.sort()
print("排序后的列表:", fruits)
上述代码的输出结果为:
排序后的列表:['apple', 'banana', 'cherry', 'orange']
sort()
方法也有一个可选参数 reverse
,默认值为 False
,如果设置为 True
,则列表将被反向排序。
fruits = ["apple", "banana", "cherry", "orange"]
fruits.sort(reverse=True)
print("反向排序后的列表:", fruits)
上述代码的输出结果为:
反向排序后的列表:['orange', 'cherry', 'banana', 'apple']
除了默认的排序规则外,我们还可以根据自定义的规则对列表进行排序。比如,我们可以按照字符串的长度对列表进行排序。
fruits = ["apple", "banana", "cherry", "orange"]
fruits.sort(key=lambda x: len(x))
print("按照字符串长度排序后的列表:", fruits)
上述代码的输出结果为:
按照字符串长度排序后的列表:['apple', 'cherry', 'banana', 'orange']
上述代码中的 key
参数指定了排序规则,lambda x: len(x)
表示按照字符串长度进行排序。
除了按照字符串长度排序,我们还可以按照字母表顺序排序,或者按照数字大小排序等。根据具体情况,我们可以自定义排序规则。