📌  相关文章
📜  如何对列表进行排序python(1)

📅  最后修改于: 2023-12-03 15:24:42.681000             🧑  作者: Mango

如何对列表进行排序 python

在 python 中,我们可以使用内置函数 sorted() 或方法 sort() 对列表进行排序。两者都可以实现对列表的排序,但是它们的使用场景略有不同。

sorted() 函数

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() 方法

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) 表示按照字符串长度进行排序。

除了按照字符串长度排序,我们还可以按照字母表顺序排序,或者按照数字大小排序等。根据具体情况,我们可以自定义排序规则。