Python内置函数sorted()和列表方法sort()排序规则不得不说的事

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小屋(Python_xiaowu)

原文发表时间:2017-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP实战技术

你应该这个姿势学习PHP(2)

1、循环数组有哪几种方式 1)foreach(能够循环关联和索引数组以及对象) 2)for(只能循环索引数组) 3)list和each配合使用循环数组 $arr...

291100
来自专栏desperate633

LintCode 字符大小写排序题目代码

小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。 样例 给出"abAcD",一个可能的答案为"acbAD"

8710
来自专栏天天

数据类型的转换

13030
来自专栏desperate633

LintCode 移动零题目分析

给一个数组 nums 写一个函数将0 移动到数组的最后面,非零元素保持原数组的顺序

8520
来自专栏PHP实战技术

你应该这个姿势学习PHP(2)

2、is_array(),is_bool,is_int(),is_integer(),is_numeric(),is_string(),is_object(),...

41160
来自专栏生信小驿站

python-运算符与表达式

你所编写的大多数语句(逻辑行)都包含了表达式(Expressions)。一个表达式的简单例子便是 2+3。表达式可以拆分成运算符(Operators)与操作数(...

22220
来自专栏desperate633

LintCode 编辑距离题目分析代码

给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。

10520
来自专栏软件开发 -- 分享 互助 成长

C++ 隐式类型转换

C++定义了一组内置类型对象之间的转换标准,在必要的时候它们被编译器隐式的转换 1、任何两种或多种类型的数据和变量混合操作的时候,最宽的数据类型成为目标转换类型...

23870
来自专栏大前端开发

ES6特性之:解构

解构(destructuring assignment), 也称解构赋值,这种语法可以方便的将数组元素或对象属性赋成新的变量。

7320
来自专栏haifeiWu与他朋友们的专栏

Python基础(一)

以#开头的语句是注释,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

17450

扫码关注云+社区

领取腾讯云代金券