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

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进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信