Python内置函数sorted()和列表方法sort()可以使用key参数指定排序规则,并且都是稳定排序,也就是说,对于指定规则不能涵盖的元素,本来谁在前面,排好以后谁还是在前面。
直接用代码说话:
>>> lst = [1, 3, 7, 5, 13, 11]
# 不指定排序规则,按元素大小升序排列
>>> sorted(lst)
[1, 3, 5, 7, 11, 13]
# 指定按转换成字符串以后的长度排序
# 13和11的长度一样
# 本来13在前面,排好以后还在前面
>>> sorted(lst, key=lambda x: len(str(x)))
[1, 3, 7, 5, 13, 11]
>>> lst.sort(key=lambda x: len(str(x)))
>>> print(lst)
[1, 3, 7, 5, 13, 11]
# 指定按转换成字符串以后的第一个字符升序排列
# 13和11的第一个字符一样
# 本来13在前面,排好以后还在前面
>>> sorted(lst, key=lambda x: str(x)[0])
[1, 13, 11, 3, 5, 7]
# 使用默认规则对lst进行原地排序
>>> lst.sort()
>>> print(lst)
[1, 3, 5, 7, 11, 13]
# 指定按转换成字符串以后的第一个字符升序排列
# 13和11的第一个字符一样
# 本来11在前面,排好以后还在前面
>>> sorted(lst, key=lambda x: str(x)[0])
[1, 11, 13, 3, 5, 7]
----------相关阅读----------
Python内置函数sorted()高级排序用法
Python内置函数sorted()从入门到精通
----------喜大普奔----------
1、继《Python程序设计基础》(9月第5次印刷)、《Python程序设计(第2版)》(9月第4次印刷)、《Python可以这样学》(7月第3次印刷)系列图书之后,董付国老师新书《Python程序设计开发宝典》已于8月1日在清华大学出版社出版,并于9月进行了第2次印刷。为庆祝新书《Python程序设计开发宝典》全面上架,清华大学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,《Python程序设计开发宝典》原价69元,新书上架期间超低价39.8元,可以复制下面的链接使用浏览器打开查看图书详情和购买:
/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3