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 ...
随机推荐
- 安装Windows7步骤
我初次装Linux系统的时候,查过一些资料,然后也有网友教过我,这里做一个总结,和大家分享一下(U盘安装). 事实上我们平时电脑开机的时候,是有个启动顺序的,他并非直接进入我们的操作系统, ...
- sharepoint搜索配置问题
配置sharepoint 爬网内容源,如我们有4台前端服务器,集群域名为eds.jd.com,2台用于爬网前端服务器,集群域名为crawl.eds.jd.com 配置内容源的时候,将地址配为: 结果一 ...
- Oracle startup的四个阶段
shutdown->nomount->mount->open: 1.shutdown:数据库关闭 2.nomount: 1)$ORACLE_HOME/dbs下找初始化参数文件 a.s ...
- iOS TabBarItem设置红点(未读消息)
实现原理: 其实是自定义一个view,将view添加到UITabBar上面,也可以是一个按钮,设置背景图片,和label.废话少说直接上代码搞一个UITabBar的分类 #import <UIK ...
- 聊聊编程开发的数据库批量插入(sql)
这里的批量插入,主要是支持SQL的大型存储数据库,本文以Mysql,Oracle,SqlServer,postgresql4类来说明,这大概是国内应用比较多的了.其余的应该可以按照这些去找.提到编程的 ...
- cuda cudnn anaconda gcc tensorflow 安装及环境配置
1.首先,默认你已经装了适合你的显卡的nvidia驱动. 到 http://www.nvidia.com/Download/index.aspx 搜索你的显卡需要的驱动型号 那么接下来就是cuda的 ...
- MySQL的库表详细操作
MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf8; 1.2 数据库命名规则 ...
- mysql-8.0.15允许外网访问
1.进MySQL之后, 2.输入以下语句,进入mysql库: use mysql3.更新域属性,'%'表示允许外部访问: update user set host='%' where user ='r ...
- redis应用场景:实现简单计数器-防止刷单
redis应用场景:实现计数器-防止刷单 最近由于双11要来临,公司需要在接口请求上,做一下并发限制的处理,或者做一个防止刷单的安全拦截:比如:一个接口请求,限制每秒请求总数为200次,超过200次就 ...
- docker swarm实现java项目的发布/滚动更新/回滚/镜像管理
使用docker swarm滚动更新java项目,部署集群,这一切的前提是使用Jenkins+maven进行项目打包,分发等功能 具体可以参考我的另外三篇文章 https://www.cnblogs. ...