1、sort() 方法
sort可以对列表元素进行排序,该方法没有返回值,直接改变原列表中元素的顺序,是对列表的就地排序。
语法格式为:L.sort(key=None, reverse=False)
- key:是指用来比较的关键字,可以说是列表元素的一个权值。key一般用来接受一个函数(或者匿名函数),这个函数只接受一个元素,并返回其权值。
- reverse:是否逆序排列(reverse默认为False,sort函数默认按照字母顺序排序。如果令reverse=True,那么就会按照与字母顺序相反的顺序排序)
下面通过两个简单的例子进行演示(我用的解释器为 Python 自带的IDLE):
phone_brand = ['HuaWei','Vivo','Oppo','Meizu','Iphone','Mi']
phone_brand.sort() # 默认根据列表元素首字母进行排序
print(phone_brand)
phone_brand.sort(key = lambda s:s[-1]) # 根据列表元素最后一个字母顺序进行排序
print(phone_brand)
# 根据最后一个字母排序,并且按照与字母顺序相反的顺序排序
phone_brand.sort(key = lambda s:s[-1],reverse = True)
print(phone_brand)
#定义一个函数
def takeStr(s):
return s[1]
phone_brand.sort(key = takeStr) #根据第2个字母进行排序
print(phone_brand)

num = [5,4,9,1,0,2,6,3,7,8]
print('原序列为:')
print(num)
num.sort()
print('将序列从小到大排序为:')
print(num)
num.sort(reverse = True)
print('将序列从大到小排序为:')
print(num)

2、sorted函数
python3 中 sorted 函数取消了对cmp的支持,sorted 可以对所有可迭代的对象进行排序操作,尤其是可以对字典进行排序。sorted() 函数将重新排序 iterable 参数中的元素,并将结果返回一个新的列表(对原列表的顺序不会产生影响)。
语法格式为:sorted(iterable, key=None, reverse=False)。
- iterable:指定一个待排序的可迭代对象。
- key:指定一个只有单个参数的函数,用于从 iterable 参数的每个元素中提取用于比较的有效关键值(比如可以用 key = str.lower 来实现忽略大小写的排序;或者用 key = len 进行基于字符串长度的排序)
- reverse:该参数是一个布尔类型值,如果设置为 True,则将结果反向排序,默认值是 False。
下面仍然通过简单的例子进行演示:
#对列表进行排序
num = [5,4,9,1,0,2,6,3,7,8]
sortNum = sorted(num) # 默认从小到大排序
print(num) # 并没有进行就地排序,还是打印原列表
print(sortNum)
print(sorted(num,reverse=True)) # 从大到小排序
#对元组进行排序
a = (5,4,9,1,0,2,6,3,7,8)
print(sorted(a))
#对字典进行排序
people = {'zhang':21,'chen':22,'song':56,'sun':30,'zhou':16}
print(sorted(people)) # 对于字典而言,默认对keys进行排序
print(sorted(people.items())) # 根据keys进行排序,以列表形式返回键值对
print(sorted(people.values())) # 对字典中的值进行排序,返回列表形式
#根据年龄从大到小进行排序
print(sorted(people.items(),key = lambda x:x[1],reverse = True))

原文作者:AC-fun
原文链接:https://blog.csdn.net/qq_41575507/article/details/105428822