Tags: 数据类型 AI 人工智能

Python列表排序方法详解(sort与reverse)

Python中,列表对象有一个内置方法 sort(),可以非常方便地对列表中的元素进行排序。默认情况下,该方法是以字母或数字的升序进行排序的。

1. 字符串列表的字母顺序排序

默认情况下,sort()方法将列表元素按字母顺序升序排序:

mylist = ["juzi", "mihoutao", "pingguo", "xiangjiao", "lizhi"]
mylist.sort()
print(mylist)
# 输出: ['juzi', 'lizhi', 'mihoutao', 'pingguo', 'xiangjiao']

2. 数字列表的排序

sort()方法也可以对数值进行排序,默认也是升序:

numbers = [100, 20, 5, 90, 30]
numbers.sort()
print(numbers)
# 输出: [5, 20, 30, 90, 100]

降序排序(reverse=True)

若想以降序排序,可以给sort()方法传入reverse=True参数:

numbers = [100, 20, 5, 90, 30]
numbers.sort(reverse=True)
print(numbers)
# 输出: [100, 90, 30, 20, 5]

自定义排序规则

你可以使用key参数,自定义排序规则。比如,根据数字与50的距离进行排序:

def myfunc(n):
    return abs(n - 50)
numbers = [100, 50, 65, 82, 23]
numbers.sort(key=myfunc)
print(numbers)
# 输出: [50, 65, 23, 82, 100]

不区分大小写的排序

默认情况下,sort()方法区分大小写,可以使用str.lower实现不区分大小写的排序:

mylist = ["pingguo", "Juzi", "xiangjiao", "Yingtao"]
mylist.sort(key=str.lower)
print(mylist)
# 输出: ['Juzi', 'pingguo', 'xiangjiao', 'Yingtao']

反转列表元素顺序

如果你想不经过排序直接反转列表顺序,可以使用reverse()方法:

mylist = ["juzi", "mihoutao", "pingguo"]
mylist.reverse()
print(mylist)
# 输出: ['pingguo', 'mihoutao', 'juzi']

掌握列表的排序与反转技巧,能让你在处理数据时更加自如,让你的代码清晰且高效。