关于python的一个小疑惑

Gunlance 2018-05-15 10:10:06
看官网文档时,有一段代码是这样子
>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]


.sotr(key=lambda pair:pair[1])
这个是怎么理解呢?

最关键是我不理解pair:pair[1]的意思
是无序排列吗?
那么我改成这样子的之后
>>>pairs = [(1, 'one'),(2, 'two'), (3, 'three'),(4, 'four'),(5,'five'),(6,'six'),(7,'seven')]
>>>pairs.sort(key=lambda pair: pair[1])
>>>pairs
[(5, 'five'),(4, 'four'),(1, 'one'),(7, 'seven'),(6, 'six'),(3, 'three'),(2, 'two')]
这个又是怎么排序的 ?
...全文
286 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gunlance 2018-05-15
  • 打赏
  • 举报
回复
引用 4 楼 fortheother 的回复:
刚刚查了下 ,pairs.sort(key=lambda pair: pair[1]) 这段代码的意思 ,就是说, 每个元素的排序,按照pairs里面的元素 (1,'one')中的第二个进行排序。按照字母表排序的话,这个东西确实是成立的。但是我不知道这个pair怎么来的,都没定义怎么就能用。后来测试了下,用pair[2]就会报错,原因是元素只有两位,只能是0和1,所以不能有2.你可以再去试试看。不过原理还是不太懂。
感谢感谢,~非常有用
Gunlance 2018-05-15
  • 打赏
  • 举报
回复
引用 3 楼 hbu_pig 的回复:
pair是参数,代表pairs的每一项,如(1, 'one') pair[1] 就是每一项的索引为1的元素,如‘one’ 按pair[1]进行排序,就是abcdefg...
谢谢,顿通。~
2018-05-15
  • 打赏
  • 举报
回复
刚刚查了下 ,pairs.sort(key=lambda pair: pair[1]) 这段代码的意思 ,就是说, 每个元素的排序,按照pairs里面的元素 (1,'one')中的第二个进行排序。按照字母表排序的话,这个东西确实是成立的。但是我不知道这个pair怎么来的,都没定义怎么就能用。后来测试了下,用pair[2]就会报错,原因是元素只有两位,只能是0和1,所以不能有2.你可以再去试试看。不过原理还是不太懂。
欢乐的小猪 2018-05-15
  • 打赏
  • 举报
回复
pair是参数,代表pairs的每一项,如(1, 'one') pair[1] 就是每一项的索引为1的元素,如‘one’ 按pair[1]进行排序,就是abcdefg...
Gunlance 2018-05-15
  • 打赏
  • 举报
回复
引用 1 楼 hbu_pig 的回复:
https://blog.csdn.net/hbu_pig/article/details/80003983 lambda表达式就是匿名函数,没有名字的函数,排序算法,需传一个参数进去 冒号前面是函数参数名称,后面是函数的return值,也可以是函数体的
pair:pair[1]是什么呢? 最后的输出是4,1,3,2。这个是怎么排的?
欢乐的小猪 2018-05-15
  • 打赏
  • 举报
回复
https://blog.csdn.net/hbu_pig/article/details/80003983 lambda表达式就是匿名函数,没有名字的函数,排序算法,需传一个参数进去 冒号前面是函数参数名称,后面是函数的return值,也可以是函数体的

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧