Python笔记(十一)_匿名函数与map()、filter()
匿名函数
无需显式定义函数名,和函数过程,使代码更精简的lambda表达式
函数没有命名,不用担心函数名的冲突
冒号前面代表函数的参数,后面表示计算过程
>>>func=lambda x : 2*x+1
>>>func(5)
11
map()
根据提供的函数对指定序列做出相应的映射
它接受两个参数,第一个是函数对象本身,第二个是序列
map将传入的函数依次作用到序列的每个元素,并把结果作为新的迭代器返回
由于结果是一个迭代器,可通过list()函数让它返回一个新的list
例1:将数字转换为字符串
>>>list(map(str,[1,2,3]))
['', '', '']
例2:计算平方
>>>def func(x):
return x*x
>>>list(map(func,[1,2,3]))
[1, 4, 9]
还可以与lambda合用简化代码:
>>>list(map(lambda x : x*x,range(1,4)))
[1, 4, 9]
>>>list(map(lambda x,y : 2*x-y,[1,3,5],[2,4,6]))
[0, 2, 4]
filter()
和map()类似,但不会返回所有的映射值,会过滤掉不符合条件的值
它接受两个参数,第一个是判断函数,第二个是序列
例1:删除序列中的空字符
>>>def not_empty(s):
return s and s.strip()
>>>list(filter(not_empty,['a','','B',None,' ']))
['a', 'B']
例2:求奇数
>>>def odd(x):
return x%2
>>>list(filter(odd,[1,2,3,4,5,6,7,8,9]))
[1, 3, 5, 7, 9]
还可以与lambda合用简化代码:
>>>list(filter(lambda x : x%2,[1,2,3,4,5,6,7,8,9]))
[1, 3, 5, 7, 9]
1-20以内所有能被3整除的数:
>>>list(filter(lambda x: not(x%3),range(1,20)))
[3, 6, 9, 12, 15, 18]
Python笔记(十一)_匿名函数与map()、filter()的更多相关文章
- python中的内置函数lambda map filter reduce
p.p1 { margin: 0; font: 12px "Helvetica Neue" } p.p2 { margin: 0; font: 12px "Helveti ...
- python基础:内置函数zip,map,filter
一.zip zip,就是把俩list,合并到一起,如果想同时循环2个list的时候,可以用zip,会帮你轮流循环两个list 比如: l1=[1,2,3,4,5] l2=['a','b','c','d ...
- day16_函数作用域_匿名函数_函数式编程_map_reduce_filter_(部分)内置函数
20180729 补充部分代码 20180727 上传代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # ***************** ...
- Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。
Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...
- Python:lambda表达式(匿名函数)
lambda表达式: 通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中 ...
- 初学 Python(十三)——匿名函数
初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...
- 【python笔记】Qt+云函数 实现简单的登录框制作
[python笔记]Qt+云函数 实现简单的登录框制作 备注:前置条件:QtDesigner.pycharm.PyQt5.配置好的云函数(百度的叫函数计算CFC,用来充当一个简陋的服务器,主要是免费) ...
- python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)
内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...
- Python day10 global关键字、函数递归、匿名函数、map函数的用法详解
1.global关键字 引用全局变量,在局部全局变量改变,也会改变,global相当于指针,将地址指向全局变量的name name='littlepage' def littepage(): glob ...
随机推荐
- sed删除注释行和空行
典型需求: 删除nginx.conf文件中注释行和空行 sed -i '/^#/d;/^$/d' nginx.conf 删除一个或多个空格加 # 号的行 sed -i '/[:blank:]*#/d' ...
- TCP协议分析(包结构)---转
TCP首部格式 tcp数据是被封装在IP数据包中的,和udp类似,在IP数据包的数据部分.tcp数据包的格式如下: 源端口号和目的端口号(寻址)与udp中类似,用于寻找发端和收端应用进程.这两个值加上 ...
- Oracle-常见的错误
1.见下面的例子 create or replace procedure p_qr_stu_cid(s_id in number, c_id out number) as begin select t ...
- python 日产经销商
''' ajaxCallSiteInfo: {1C8B2BC6-35E2-460E-A63D-3576F3039D79} ''' import requests import json from db ...
- Fiddler查看IP和响应时间
原文:Fiddler查看IP和响应时间 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/si ...
- tornado后台小框架
import tornado.ioloop import tornado.web """使用get方法提交过来数据就是用get方法,使用post执行post方法这个框架的 ...
- vue简单的v-for - - 路由跳转
前几天写了一个特特特简单的小图片页面,主要用到的就是v-for遍历以及路由跳转到详情页.路由跳转需要在router文件夹下index.js引入. 导航栏(element ui导航栏为模板): < ...
- MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER
最近项目中遇到有人使用DEFINER这样的关键字,找了半天没有怎么理解这个意思.以为是限制谁使用这个存储过程,后来测试发现并不是这样. 搜索网上发现很多说法都不正确.看到一篇博客,做了如下介绍,才有所 ...
- Deepin学习笔记
更改更新源 1)sudo vim /etc/apt/sources.list 2)sudo apt-get update 3) 镜像源 http://mirrors.aliyun.com/deepi ...
- javascript 设置cookie和取得cookie
代吗实例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...