已有183人关注
关于lambda表达式与sort()联合使用进行自定义排序的问题,希望得到解答!仅有的8学分啊都给了
发表在Python图书答疑 2019-12-10 悬赏:8 学分 《Python从入门到项目实践》第11章 用函数实现模块化程序设计
是否精华
版块置顶:

假设物品们有一个字典用下面代码

content = list(d.items())
得到了一个列表,打印其中的内容发现得到了一个列表,其中存储的值是元组类型的。

[('beautiful', 10), ('wonderful', 12), ('love', 17)]

用键来排序:
content.sort(key=lambda x:x[0])写成这个样子, x就是列表中的一个元组,x[0]就是元组中的第一个元素,也就是我们之前存储的键
打印一下:[('beautiful', 10), ('love', 17), ('wonderful', 12)]可以看出来按照每个键的首字母排序

那么问题来了:lamabda是个匿名函数,冒号左边的是形式参数,这里把列表中的元素当作实际参数传递给了
X 进行元组的元素获取,我想知道 匿名函数中 x 是谁给它传的列表中的元素?难道是key的隐藏功能?




分享到:
精彩评论 4
词不搭调
学分:16 LV2
2019-12-10
沙发

求大佬们帮忙

词不搭调
学分:16 LV2
2019-12-11
板凳

词不搭调 发表于2019-12-10 22:47

求大佬们帮忙

自己已经想明白了,哪位同好,者可以讨论交流

magiczhiyuan
学分:4 LV1
2020-04-12
地板

词不搭调 发表于2019-12-11 10:55

自己已经想明白了,哪位同好,者可以讨论交流

怎么想明白的,我也要问这个问题呢

词不搭调
学分:16 LV2
2020-04-19
4L

magiczhiyuan 发表于2020-04-12 12:33

怎么想明白的,我也要问这个问题呢

首先你要理解sort函数中key的功能,其次你要了解 匿名含数是会返回一个值给key

并且这个返回值是,传入进匿名函数的列表的第0位索引的元素,所以指定列表按照0位索引元素来排序 0位索引元素会根据自己的第一个元素来进行排序的

首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照