在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']
掌握列表的排序与反转技巧,能让你在处理数据时更加自如,让你的代码清晰且高效。