鱼C论坛

 找回密码
 立即注册
查看: 1276|回复: 7

[已解决]lambda使用问题

[复制链接]
发表于 2017-11-14 08:52:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
num = [i*i for i in range(1, 100)]
print(sorted(num, key=lambda n: sum(int(e) for e in str(n))))
第一个语句我能明白,第二条语句中的lambda n: sum(int(e) for e in str(n))这个帮忙解释下,谢谢
最佳答案
2017-11-14 10:14:35
赵鑫权2353 发表于 2017-11-14 09:21
好的这句代码我懂了,先谢了
还有2个问题:
1.sorted(num, key=lambda n: sum(int(e) for e in str(n)) ...

1 是
2 因为你给的原始列表中1就在前面,如果你把100放前面,最终结果也会是100在前面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-14 08:57:54 | 显示全部楼层
lambda作为一个表达式,定义了一个匿名函数,也就是  sum(int(e) for e in str(n)))

将 num 作为n 带入这个函数进行运算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-14 09:00:42 | 显示全部楼层
lambda n: sum(int(e) for e in str(n))
等价于:
n = str(n)
total = 0
for e in n:
     e = int(e)
     total += e
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-14 09:10:31 | 显示全部楼层
BngThea 发表于 2017-11-14 09:00
lambda n: sum(int(e) for e in str(n))
等价于:
n = str(n)

那么这句话其实就是求总数。如我sum=【111】那么运行之后就是3,对吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-14 09:15:28 | 显示全部楼层
赵鑫权2353 发表于 2017-11-14 09:10
那么这句话其实就是求总数。如我sum=【111】那么运行之后就是3,对吗

格式上不太准确,我举个例子
比如 n = ‘3554’
那么结果就是
3 + 5 + 5 + 4 = 17
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-14 09:21:59 | 显示全部楼层
BngThea 发表于 2017-11-14 09:15
格式上不太准确,我举个例子
比如 n = ‘3554’
那么结果就是

好的这句代码我懂了,先谢了
还有2个问题:
1.sorted(num, key=lambda n: sum(int(e) for e in str(n)))这句整体的是不是就是按照key的大小对num进行排序?
2那么如果是一样大,程序会怎么做。如我sum=【'1','2','100'】,那么运行结果是【‘1’,‘100’,‘2’】。100为什么会在1后面而不是前面?
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-14 09:22:08 | 显示全部楼层
求总数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-14 10:14:35 | 显示全部楼层    本楼为最佳答案   
赵鑫权2353 发表于 2017-11-14 09:21
好的这句代码我懂了,先谢了
还有2个问题:
1.sorted(num, key=lambda n: sum(int(e) for e in str(n)) ...

1 是
2 因为你给的原始列表中1就在前面,如果你把100放前面,最终结果也会是100在前面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 09:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表