Python中map,reduce,filter和sorted函数的使用方法


Posted in Python onAugust 17, 2015

map

map(funcname, list)

python的map 函数使得函数能直接以list的每个元素作为参数传递到funcname中, 并返回响应的新的list
如下:

def sq(x):
  return x*x #求x的平方
map(sq, [1,3, 5,7,9]) #[1, 9, 25, 49, 81]

在需要对list中的每个元素做转换的时候, 会很方便

比如,把list中的每个int 转换成str

map(str, [23,43,4545,324]) #['23', '43', '4545', '324']

当然, 第二个参数是list, 也可以是tuple 或者是set类list结构的, dict 是不行的,不过返回的结果都是list

map(sq, (1,3, 5,7,9)) # tuple [1, 9, 25, 49, 81]
map(sq, set([1,3, 5,3,7,9])) # set [1, 9, 81, 25, 49]

这里顺便说一下, dict的结构是用{} 表示的,如

{"name": "Yi_Zhi_Yu", "age":25}

是直观的key-value形式, 那么如果{}中的是一个类list的结构呢, 如:

{"Yi_Zhi_Yu", 25}

其实, 这就是set的最终返回形式, 等价于:

set(["Yi_Zhi_Yu", 25])# 你会看到最终的输出形式是{25, 'Yi_Zhi_Yu'}

那么, 自然{}有重复值得时候也会去重

{1,3, 5, 3, 7, 9} #{1, 3, 5, 7, 9}

reduce

reduce(funcname, list)

与map相比 , reduce类似于一个聚合类的应用方法, 把list中的参数, 依次传递给funcname, 每次funcname的参数都是上个funcname 执行结果和下一个list中的元素, 所以, funcname 的 参数必须是两个. 从执行过程看, 有点像递归

例如: 求range(1, 101)(不包括101)的和,

def c_sum(x, y):
  return x + y;
reduce(c_sum, range(1,101)) #5050

filter

filter(funcname, list)

执行过程依次将list中的元素传递到funcname函数中, 根据funcname返回的True或False 保留或丢弃元素

例: 返回某个list中的所有int数据

def is_int(x):
  if isinstance(x, (int)):
    return True
  else:
    return False

 filter(is_int, ["Yi",2, "3", 4]) #[2, 4]

sorted

sorted( list, [comp_func])

排序方法, 第二个是可选参数, 根据可选参数返回的值, 对结果进行排序, comp_func 接受两个参数(x, y), 最终返回的结果应该是-1.0,1, 如果返回的是-1, 表示x<y , 0表示x=y, 1表示x>y, 所以, 实际的排序可以自定义
默认是正序排序:

sorted([3,4, 12, 5, 9, 1]) #[1, 3, 4, 5, 9, 12]

如果是需要倒序排列, 自定义方法:

def m_order(x, y):
  if(x > y):
    return -1
  elif(x == y):
    return 0
  else:
    return 1
sorted([3,4, 12, 5, 9, 1], m_order) #[12, 9, 5, 4, 3, 1]
Python 相关文章推荐
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
在Django中限制已登录用户的访问的方法
Jul 23 Python
python实现计数排序与桶排序实例代码
Mar 28 Python
python3实现高效的端口扫描
Aug 31 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
python中dict()的高级用法实现
Nov 13 Python
python 实现矩阵按对角线打印
Nov 29 Python
如何使用Python多线程测试并发漏洞
Dec 18 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 Python
Python 文本滚动播放器的实现代码
Apr 25 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 #Python
使用Python操作MySQL的一些基本方法
Aug 16 #Python
Python中list列表的一些进阶使用方法介绍
Aug 15 #Python
Python中的super()方法使用简介
Aug 14 #Python
在Python中使用正则表达式的方法
Aug 13 #Python
简单讲解Python中的闭包
Aug 11 #Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 #Python
You might like
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
Python itertools.product方法代码实例
2020/03/27 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
护士实习自我鉴定
2013/10/22 职场文书
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
社区十八大感言
2014/01/19 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
给领导的检讨书
2014/02/16 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
保研推荐信格式
2015/03/25 职场文书
微观世界观后感
2015/06/10 职场文书
追讨欠款律师函
2015/06/24 职场文书
php png失真的原因及解决办法
2021/11/17 PHP
python解析照片拍摄时间进行图片整理
2022/07/23 Python