为了账号安全,请及时绑定邮箱和手机立即绑定

sorted()和filter()两种函数的匿名函数写法不一样吗?求详解??

1、>>> sorted([1, 3, 9, 5, 0], lambda x,y: -cmp(x,y))
[9, 5, 3, 1, 0]


2、print filter(['test',None,'','str','  ','END'],lambda s:s and len(s.strip())>0)

2、按照1、那样写就是错的,但把lamdba顺序和list[]数组换一下就是对的。是因为这两个函数的用法不一样吗?求详解??

正在回答

1 回答

是的,sorted()和filter()两个函数的用法是不一样的,主要是参数定义不一样。你在python 命令符下输入:help(sorted) 可以看到sorted()函数的帮助文档

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

可以看到,第一个参数 iterable 这应该是一个list 或者 tuple  第二个参数 cmp,默认是None  它应该传入一个函数

同样可以看到filter()的帮助文档

filter(...)
    filter(function or None, sequence) -> list, tuple, or string

第一个参数是函数,第二个参数是个list或者tuple



0 回复 有任何疑惑可以回复我~
#1

慕粉1934527460 提问者

非常感谢!祝生活愉快~~~
2017-02-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

sorted()和filter()两种函数的匿名函数写法不一样吗?求详解??

我要回答 关注问题
微信客服

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

帮助反馈 APP下载

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

公众号

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