请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

sorted 传参数问题

1
2
3
4
5
6
7
8
我用的版本是python3
= {'1'84'2'87'3'97'4'73'5'75'6'71'7'67'8'67'9'66'10'80'11'66'12'94'13'74'14'89'15'89'16'87'17'71'18'83'19'76'20'88}
统计value大于70的表达式为:{key:value for key,value in d.items() if value > 70},此时d.items()可以正常将key和value传递给for循环中的key和value,
但是假如我要对d按value大小进行排序,我的表达式是这样写的;
sorted(d.items(), key = lambda key,value:value, reverse = True)它会报错,提示我少传递了一个位置参数value,
但是修改 sorted(d.items(), key = lambda x:x[1], reverse = True)就可以正常排序。
所以请问老师,为什么同样迭代d.items(),在for循环里可以将元组的值赋给key和value,而在sorted里的lambda里却只能将元组
作为一个整体传递给参数,而不能分别传递给key和value呢?


正在回答

插入代码

1回答

在for循环里, 元组拆包. sorted的lambda里没有拆包.

0 回复 有任何疑惑可以回复我~
  • 提问者 小龙骑士 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-06-03 15:23:54
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号