sorted函数、filter函数和map函数的区别
1、作用
前者用于排序,
中者用于筛选,
后者用于返回值(不是特定的筛选或者排序)
2、写法
前者 sorted(iterable,key=自定义函数名字或者匿名函数,reverse=False)
返回的是iterable
中者 filter(func(自定义函数名字或者匿名函数),iterable)
返回的是iterator(迭代器) 通过list(迭代器)转换成列表(iterable)
前者 map(func(自定义函数名字或者匿名函数),iterable)
返回的是iterator(迭代器) 通过list(迭代器)转换成列表(iterable)
3、运行原理--概念
前者 将iterable中的每一个元素,作为参数依次传递到key后面的自定义函数中(或者匿名函数中)
依据函数的返回值,作为排序的依据
中者 将iterable中的每一个元素,作为参数依次传递到参数1-自定义函数中,
将函数的返回值保留 (自定义函数完成对参数的条件判断-筛选)
后者 将iterable中的每一个元素,作为参数依次传递到参数1-自定义函数中,
将函数的返回值保留 (自定义函数完成对参数的计算--并非特定的条件判断或者排序)
4、应用
对下面的学生信息进行筛选和修改信息
li1 =[{'name':'jack','age':29},{'name':'tom','age':19}]
sorted() 函数可以依据年龄进行升序排列
filter() 函数可以把年龄大于20的学生筛选出来
map()函数可以把年龄都加1岁
5、适用场景
1、map()函数适合比较复杂的操作,此时,参数1是自定义函数,而不是匿名函数
将参数2-iterable中的每个元素,依次传递到自动化函数中进行操作
2、列表推导式适合比较简单的操作,一行搞定
3、匿名函数也适合比较简单的操作
6、例子
#练习 将下面学生信息,先按照年龄筛选出大于20岁的,然后按照年龄升序排列,最后把年龄都加一岁
li2 =[{'name':'jack','age':29},{'name':'tom','age':19},{'name':'bob','age':23}] #1筛选 大于20
f1 =filter(lambda dic:dic['age']>20,li2)
li3 =list(f1)
print(li3) #[{'name': 'jack', 'age': 29}, {'name': 'bob', 'age': 23}] #2排序
li4 = sorted(li3,key=lambda dic:dic['age'],reverse=False)
print(li4) #[{'name': 'bob', 'age': 23}, {'name': 'jack', 'age': 29}] #3批量修改
def func(dic1):
dic1['age'] +=1
return dic1 #返回字典本身 # m1 =map(lambda dic:dic['age']+1,li4) #[24, 30]
#这里因为dic1字典本身修改了(年龄都加1岁,批量修改),这里不适合用匿名函数,适合用自定义函数 #注意点
m1 =map(func,li4)
li5 = list(m1)
print(li5) #[{'name': 'bob', 'age': 24}, {'name': 'jack', 'age': 30}]

Python【day 14】sorted函数、filter函数和map函数的区别的更多相关文章

  1. 2018.8.15 python 中的sorted()、filter()、map()函数

    主要内容: 1.lambda匿名函数 2.sorted() 3.filter() 4.map() 5.递归函数 一. lambda匿名函数 为了解决一些简单的需求而设计的一句话函数 # 计算n的n次方 ...

  2. 匿名函数lambda,过滤函数filter,映射类型map

    匿名函数lambda, 作用是不用定义函数,用完之后会自动被删掉,在使用执行脚本的时候,使用lambda就可以省下定义函数的过程,简化代码的可读性. 格式是 例子g=lambda x,y:x+y g( ...

  3. python关于list的三个内置函数filter(), map(), reduce()

    ''' Python --version :Python 2.7.11 Quote : https://docs.python.org/2/tutorial/datastructures.html#m ...

  4. Python基础(reduce,filter,map函数)

    map函数: map函数特点:对可迭代对象中的每个元素进行相同的操作(例如每个元素+1等等) #————————————————map函数———————————————————— #对列表的各个元素实 ...

  5. 十一、python沉淀之路--map函数、filter函数、reduce函数、匿名函数、内置函数

    一.map函数 1.自定义函数,实现类似于map函数的功能 num_l = [1,3,4,5,6,9] def power(n): return n ** 2 def map_test(func,ar ...

  6. python map函数、filter函数、reduce函数

    1.map函数:map(func,可迭代对象): ①func可以是自定义的函数,也可以是功能简单的匿名函数(通过lambda定义) ②处理逻辑:表示将传入的可迭代对象依次循环,将每个元素按照传入的fu ...

  7. 函数与函数式编程(生成器 && 列表解析 && map函数 && filter函数)-(四)

    在学习python的过程中,无意中看到了函数式编程.在了解的过程中,明白了函数与函数式的区别,函数式编程的几种方式. 函数定义:函数是逻辑结构化和过程化的一种编程方法. 过程定义:过程就是简单特殊没有 ...

  8. 『无为则无心』Python函数 — 33、高阶函数

    目录 1.高阶函数的定义 2.体验高阶函数 3.内置高阶函数 (1)map()函数 (2)reduce()函数 (3)filter()函数 1.高阶函数的定义 把函数作为参数传入(把一个函数作为另外一 ...

  9. Python23之内置函数filter()和map()

    首先我们了解一个概念:迭代 迭代是访问集合元素的⼀种⽅式.迭代器是⼀个可以记住遍历的位置的对象.迭代器对象从集合的第⼀个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 我们已经知道 ...

  10. Python3下map函数的显示问题

    map函数是Python里面比较重要的函数,设计灵感来自于函数式编程.Python官方文档中是这样解释map函数的: map(function, iterable, ...) Return an it ...

随机推荐

  1. IDEA创建maven web工程

    一.新建一个maven web工程 step1 File --> New --> Project step2 按下图步骤操作 step3 填写项目信息 step4 选择本地的maven安装 ...

  2. js监听屏幕方向如何第一次默认不监听

    this.supportOrientation = typeof window.orientation === 'number'; // 检查屏幕方向 checkScreenOrientation() ...

  3. Kali linux-信息收集-dmitry

    信息收集-dmitry DMitry(Deepmagic Information Gathering Tools 深度信息收集工具)是一个kali linux下用C语言写的工具.主要功能为端口扫描,w ...

  4. 需求规格说明书(final)

    1. 引言 1.1 编写目的 该文档是关于微信小程序自习吧的功能和性能描述,重点描述了小程序的功能需求,并作为小程序开发设计阶段的主要输入. 本文档的预期读者包括:triple兔成员,软件工程老师,用 ...

  5. linux远程Windows服务器

    Rdesktop -f  ip 端口 Ctrl+alt+enter退出全屏

  6. pyse基本操作命令一

    #coding=utf-8import timefrom selenium import webdriver dr = webdriver.Chrome()# dr = webdriver.Ie()d ...

  7. Monkey小白入门篇

    一.monkey简介 中文名:猴子 职业:压力测试小工具 用途:对待测Android应用程序进行压力测试,测试app是否会crash Android官方描述: The Monkey is a prog ...

  8. SecureCRT自动断开连接的解决方法

    方法一: 在普通用户下,输入重启sshd服务的命令:service sshd restart 这时会提示:管理系统服务或单元需要身份验证.解决的方法:先要切换为root用户,接着重启sshd服务:se ...

  9. CF786B Legacy 线段树优化建图

    问题描述 CF786B LG-CF786B 题解 线段树优化建图 线段树的一个区间结点代表 \([l,r]\) 区间点. 然后建立区间点的时候就在线段树上建边,有效减少点的个数,从而提高时空效率. 优 ...

  10. Python 对象比较(is & ==)

    Python 对象有 3 要素 id type value id 对象在内存中的地址 可以通过 id() 获取 比较 只有同一个对象 id 才会相同 id 通过 is 比较 示例: a = list( ...