一、filter

#filter()函数用于过滤序列。和map()类似,也接收一个函数和一个序列,把函数依次作用于每个元素,根据返回值是True还是False决定是否保留该元素。
#filter()函数返回的是一个Iterator,即惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。
def odd(n):
return n%2==1
ms=list(filter(odd,[1,2,3,4,5,6,7,8,9,10])) #保留奇数
print(ms) #一、过滤空字符串
def not_empty(s):
return s and s.strip()
ms=list(filter(not_empty,['Zc',' ','BOOM',None,'BLOG']))
print(ms) #二、生成范围素数数组
#构造一个从3开始的奇数序列
def _odd_iter():
n=1
while True:
n=n+2
yield n
#筛选函数
def _not_divisible(n):
return lambda x:x % n !=0
#定义一个生成器,不断返回下一个素数
def primes():
yield 2
it = _odd_iter() #初始序列
while True:
n=next(it) #返回序列的第一个数
yield n
it = filter(_not_divisible(n),it) #构造新序列
#输出1000以内的素数
for n in primes():
if n <1000:
print(n)
else:
break

上面这个用生成器写素数数组的,我这种菜鸡是真的看不懂,没思路。下面是找群里某蓝色兔头专业代言雀巢咖啡三十年的java&Python双料大佬给我写了个简单的:

def test(num):
num_list = [True] * num
num_list[0] = False
for i in range(2, num+1):
for j in range(i+i, num+1, i):
num_list[j-1] = False
return [x+1 for x in range(len(num_list)) if num_list[x]] print(test(100))

二、sorted

#sorted()可以对list进行排序,还可以接收一个key()函数实现自定义排序.
#key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。
ms=sorted([35,-9,-20,23,2],key=abs) #按绝对值大小排序 #默认情况下,对字符串排序,是按照ASCII的大小来比较的
ms1=sorted(['boom','axure','Zero','Cat']) #['axure', 'boom', 'Cat', 'Zero']
ms2=sorted(['boom','axure','Zero','Cat'],key=str.upper) #['Zero', 'Cat', 'boom', 'axure'] #反向排序,加参数reverse
ms3=sorted(['boom','axure','Zero','Cat'],key=str.upper,reverse=True)

 三、练习

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
#按照名字排序
def by_name(n):
return n[0]
print(by_name(L))
L2 = sorted(L, key=by_name)
print(L2) #按照成绩降序
def by_score(n):
return n[1]
L2 = sorted(L, key=by_score,reverse=True)
print(L2)

Python学习笔记系列——高阶函数(filter/sorted)的更多相关文章

  1. Python学习笔记系列——高阶函数(map/reduce)

    一.map #变量可以指向函数,函数的参数能接受变量,那么一个函数就可以接受另一个函数作为参数,这种函数被称之为高阶函数 def add(x,y,f): return f(x)+f(y) print( ...

  2. Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数

    高阶函数Higher-orderfunction 变量可以指向函数 >>> abs #abs(-10)是函数调用,而abs是函数本身 <built-in function ab ...

  3. 【Python学习之六】高阶函数2(map、reduce、filter、sorted)

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

  4. 【Python学习之六】高阶函数1(map、reduce、filter、sorted)

    1.map map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回.示例: >>> def ...

  5. python学习笔记011——内置函数filter()

    1 描述 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表. 2 语法 filter(function, iterable) function -- 函数,过 ...

  6. scala学习笔记:高阶函数

    scala> def power(y:Double)=(x:Double)=>Math.pow(x,y) warning: there were 1 deprecation warning ...

  7. python六十三课——高阶函数之sorted

    演示sorted函数的使用,以及和sort的区别:我们将sorted和sort进行一番比较:相同点:它们都是来实现排序的操作(功能层面)不同点:列表中的sort函数,它执行完毕后会直接影响原本这个li ...

  8. 【python】python函数式编程、高阶函数

    1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并            返回. def f(x): r ...

  9. python入门16 递归函数 高阶函数

    递归函数:函数内部调用自身.(要注意跳出条件,否则会死循环) 高阶函数:函数的参数包含函数 递归函数 #coding:utf-8 #/usr/bin/python """ ...

随机推荐

  1. 通过读写文本文件小结“关于python处理中文编码的问题”

    一.引言 无论学习什么程序语言,字符串这种数据类型总是着有非常重要.然而最近在学习python这门语言,想要显示中文,总是出现各种乱码.于是在网上查了很多资料,各说纷纭,我也尝试了许多的方法,有时候可 ...

  2. LOJ#6271. 「长乐集训 2017 Day10」生成树求和 加强版

    传送门 由于是边权三进制不进位的相加,那么可以考虑每一位的贡献 对于每一位,生成树的边权相当于是做模 \(3\) 意义下的加法 考虑最后每一种边权的生成树个数,这个可以直接用生成函数,在矩阵树求解的时 ...

  3. bzoj P3309 DZY Loves Math——solution

    对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0.给定正整数a,b,求: $$\sum_{i= ...

  4. MapReduce:Shuffle过程详解

    1.Map任务处理 1.1 读取HDFS中的文件.每一行解析成一个<k,v>.每一个键值对调用一次map函数.                <0,hello you>   & ...

  5. C# SqlConnection连接sql server

    try { SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=127.0.0.1; ...

  6. io流中read方法使用不当导致运行异常的一点

    public class CopyMp3test { public static void main(String[] args) throws IOException { FileInputStre ...

  7. Nested Prefab Mode 嵌套预制体 保存问题 Dirty

    Unity2018.3 Nested Prefab Mode 嵌套预制体 Unity2018.3开始,新增了一个Prefab Mode,俗称嵌套预制体,在Prefab里套Prefab.实际应用中多少会 ...

  8. jsp到java后台中文乱码问题

    ---首先描述一下我的情况,我的jsp    设置了编码格式 <%@ page language="java" contentType="text/html; ch ...

  9. ES6高频面试题目整理

    本篇文章是根据以下内容进行的总结 1.https://segmentfault.com/a/1190000011344301 2.http://www.bslxx.com/a/mianshiti/ti ...

  10. ReactJS表单handleChange

    handleInputChange = (event) => { const target = event.target; const type = target.type; const val ...