Python基础灬高阶函数(lambda,filter,map,reduce,zip)
高阶函数
lambda函数
关键字lambda表示匿名函数,当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。
lambda函数省略函数名,冒号前为参数,冒号后函数体。
# 定义一个取偶数的函数
def even(x):
for i in x:
if i % 2 == 0:
yield i
# 等价于取偶数
lambda x: x % 2 == 0
filter函数
filter(function,iterable)接收一个函数和一个可迭代对象作为参数,过滤iterable中满足function函数的元素。
fi = filter(lambda x: x % 2 == 0, [1, 2, 3, 4])
print(type(fi))
print(list(fi))
# <class 'filter'>
# [2, 4]
map函数
filter(function,iterable)接收一个函数和一个可迭代对象作为参数,将函数作用于iterable中的每一个元素。
m = map(lambda x: x + 1, [1, 2, 3])
print(type(m))
print(list(m))
# <class 'map'>
# [2, 3, 4]
reduce函数
reduce(funtion,iterable)接收一个函数和一个可迭代对象作为参数,将函数结果作为第一个参数,iterable中的下一个元素做第二个参数,做累计计算。
# 等价于求和计算
from functools import reduce
r = reduce(lambda x, y: x + y, [1, 2, 3])
print(r)
# 6
zip函数
zip(*iterable)接收多个可选可迭代对象作为参数,针对每个迭代对象的元素生成新的包含若干元组的一个可迭代对象。
z = zip([1, 2, 3], [4, 5, 6], [7, 8, 9])
print(type(z))
print(list(z))
# <class 'zip'>
# [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
zip(*zip)
zip(*zip)是zip的逆操作。
# 逆操作
z = zip([1, 2], [3, 4], [5, 6])
x, y, q = zip(*z)
print(x, y, q)
# (1, 2) (3, 4) (5, 6)
交换dict的键值
di = {'name': 'jack', 'age': 18}
print(dict(zip(di.values(), di.keys())))
# {'jack': 'name', 18: 'age'}
模块
模块是代码量变得相当大之后,为了将需要重复使用的有组织的代码段放在一起组成一个模块,模块可以被附加到现有程序中,附加的过程叫做导入(import)。
# 导入模块的写法
import 模块名称
form 模块名称 import 方法名
Python基础灬高阶函数(lambda,filter,map,reduce,zip)的更多相关文章
- Python基础——4高阶函数
高阶函数 函数本身可用变量指向,把变量当做函数参数的函数成为高阶函数 map and reduce map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每 ...
- Python学习(五)函数 —— 内置函数 lambda filter map reduce
Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...
- Python 函数lambda(), filter(), map(), reduce()
1 filter filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String ...
- Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted
1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...
- python 高阶函数之filter
前文说到python高阶函数之map,相信大家对python中的高阶函数有所了解,此次继续分享python中的另一个高阶函数filter. 先看一下filter() 函数签名 >>> ...
- python 常用的高阶函数
前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...
- Python中的高阶函数与匿名函数
Python中的高阶函数与匿名函数 高阶函数 高阶函数就是把函数当做参数传递的一种函数.其与C#中的委托有点相似,个人认为. def add(x,y,f): return f( x)+ f( y) p ...
- Python入门篇-高阶函数
Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数 1>.First Class Object 函数在Python中是一等公民 函数也 ...
- 高阶函数概念以及map/filter/reduce
什么样的函数叫高阶函数:map(func, *iterables) --> map object 条件:1.函数接受函数作为参数 2.函数的返回值中包含函数 num_l = [1,2,3,4,5 ...
随机推荐
- 轻量ORM-SqlRepoEx (十五)最佳实践之数据映射(Map)
简介:SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的是Lambda表达式,所以,对c#程 ...
- Android AIDL浅析及异步使用
AIDL:Android Interface Definition Language,即 Android 接口定义语言. AIDL 是什么 Android 系统中的进程之间不能共享内存,因此,需要提供 ...
- 从对集合数据去重到Distinct源码分析
今天在写代码的时候要对数据进行去重,正打算使用Distinct方法的时候,发现这个用了这么久的东西,竟然不知道它是怎么实现的,于是就有了这篇文章. 使用的.net core2.0 1.需求 假如我们有 ...
- Web开发生存工具使用指南
这里安利两款我认为开发中能够极大的提高生产力的工具,Charles 和 Postman. P.S. Charles(查尔斯)..不要再读查理斯了,金刚狼中被老铁扎心的博士就叫 CharlesP.P.S ...
- shell习题第10题:打印每个单词的字数
[题目要求] 用shell打印下面这句话中字母数小于6的单词. Bash also interprets a number of multi-character options. [核心要点] for ...
- echarts通过ajax动态获取数据的方法
echarts表格的数据一般都需要动态获取,所以总结了一下通过ajax动态获取数据的操作: 插入的方法应该不止一种,我也是接触不久,所以刚学会了一种插入方法: 灵感和经验来自:https://www. ...
- MongoDB的高级使用
MongoDB的高级使用 1. Mongdb的索引备份以及和python交互 t255为mongodb中的集合 1.1 创建索引 索引的特点:提高查找的效率 不创建索引的情况下的查询: for(i=0 ...
- python3 class类 练习题
"""一.定义一个学生Student类.有下面的类属性:1 姓名 name2 年龄 age3 成绩 score(语文,数学,英语) [每课成绩的类型为整数] 类方法:1 ...
- Executors 挖坑
Executors 挖坑 线程频繁的创建销毁是有代价的,所以Java为我们提供了线程池 线程池构造方法很多 我们一般使用Executors的工厂方法: public static ExecutorSe ...
- 阿里云ubantu16.04 搭建LAMP环境
1.登录服务器 2.sudo apt-get update 更新软件列表 3.sudo apt-get install lamp-server^ (注意右上角的' ^ '这个不能少) 输入apach ...