码迷,mamicode.com
首页 > 编程语言 > 详细

python 高阶函数三 filter()和sorted()

时间:2017-12-16 23:16:19      阅读:343      评论:0      收藏:0      [点我收藏+]

标签:sort   函数返回   iterator   绝对值   返回值   定义   对list进行排序   pre   排序   

一、filter()函数

filter()接收一个函数和一个序列。filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

 1 >>> from collections import Iterator
 2 >>> def is_odd(n):
 3 ...     return n % 2 == 1
 4 ... 
 5 >>> it = filter(is_odd, [1, 2, 3, 4, 5, 6])
 6 >>> it
 7 <filter object at 0x1013e58d0>
 8 >>> isinstance(it, Iterator)
 9 True
10 >>> list(it)
11 [1, 3, 5]

filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。

二、sorted()函数

sorted()函数就可以对list进行排序

1 >>> sorted([36, -5, 9, -12])
2 [-12, -5, 9, 36]

sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:

1 >>> sorted([36, -5, 9, -12], key=abs)
2 [-5, 9, -12, 36]
1 >>> sorted([bob, about, Zoo, Credit], key=str.lower, reverse=True)
2 [Zoo, Credit, bob, about]

 

python 高阶函数三 filter()和sorted()

标签:sort   函数返回   iterator   绝对值   返回值   定义   对list进行排序   pre   排序   

原文地址:http://www.cnblogs.com/gundan/p/8047836.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!