python map函数(23)
截至到目前为止,其实我们已经接触了不少的python内置函数,而map函数也是其中之一,map函数是根据指定函数对指定序列做映射,在开发中使用map函数也是有效提高程序运行效率的办法之一.

一.语法定义
'''
function:函数名
iterable:一个序列或者多个序列,实际上这就是function对应的实参
'''
map(function, iterable, ...)
二.实战练习
1.使用map函数
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com @File:python_map.py
@Time:2019/10/7 19:48 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
""" def func1(x):
# 对序列中的每一个元素乘以10并返回
return x*10 '''
map() 会根据提供的函数对指定序列做映射。
序列中的每一个元素调用 func1 函数,返回新列表。
'''
x = map(func1,range(0,10))
print(list(x))
# map函数返回的迭代器只能迭代一次,迭代之后会自动清空
print(list(x)) print("***"*20)
# 将map函数返回的迭代器保存转为list,可以多次使用
y = list(map(func1,range(0,10)))
print(y)
print(y)
输出结果:
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
[]
************************************************************
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
2.map函数配合匿名函数一起使用
# map函数配合匿名函数使用
x = list(map(lambda a:a*10,range(0,10))) # 序列中的每个元素乘以10
print(x) # map函数配合匿名函数使用,匿名函数有两个参数,所以map传参数应该也是两个序列
y = list(map(lambda a,b:a+b,[1,2,3,5,6,7],[10,20,30,50,60,70])) # 两个序列相加
print(y)
输出结果:
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
[11, 22, 33, 55, 66, 77]
注意:如果map()函数中的函数是多个参数,那么map传参的时候也应该传递多个序列.

三.效率对比
对比以下效率,向列表中存入一千万条数据,比较下耗时情况:
import time
list1 = list() # 普通for循环
start = time.clock()
for i in range(0,10000000):
list1.append(i)
print("普通for循环耗时:",time.clock() - start) # 列表推导式
list1.clear()
start = time.clock()
list1 = [i for i in range(0,10000000)]
print("列表推导式循环耗时:",time.clock() - start) # map映射函数
list1.clear()
start = time.clock()
list1 = list(map(lambda x:x,range(0,10000000)))
print("map映射函数耗时:",time.clock() - start)
输出结果:
普通for循环耗时: 1.1869014999999998
列表推导式循环耗时: 0.5339119999999999
map映射函数耗时: 0.9047431000000001
根据测试结果看来:列表推导式效率 > map映射函数 > 普通for循环

四.重点总结
1.map函数的参数是由函数和一个序列或者多个序列构成;
2.map函数处理的结果是迭代器,而且只能迭代一次,如果需要多次使用,请提前保存;
猜你喜欢:
转载请注明:猿说Python » python map函数

python map函数(23)的更多相关文章
- python map函数
map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于li ...
- python map函数 reduce函数
Python中map()函数浅析 函数式编程: 更好的描述问题 map函数 怎么理解当传入多个参数list时,map如何运作: abc函数第一次传入的数据时 (11,44,77),然后(22,5 ...
- python——map()函数
描述 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表. 语法 m ...
- py-day3-6 python map函数
map函数 :处理序列中的每个元素,得到的结果是一个列表,该列表元素个数及位置与原来一样 ## 求列表里元素的平方 (原始方法) num_1=[1,2,13,5,8,9] res =[] for i ...
- python map函数的使用
python2 中的map函数返回列表 python3 中的map函数返回迭代器 >>>def square(x) : # 计算平方数 ... return x ** 2 ... & ...
- python map函数、filter函数、reduce函数
1.map函数:map(func,可迭代对象): ①func可以是自定义的函数,也可以是功能简单的匿名函数(通过lambda定义) ②处理逻辑:表示将传入的可迭代对象依次循环,将每个元素按照传入的fu ...
- day16 Python map函数
num_l=[1,2,10,5,3,7] #lambda x:x+1 # def add_one(x): # return x+1 #lambda x:x+1 # def reduce_one(x): ...
- Python map,filter,reduce函数
# -*- coding:utf-8 -*- #定义一个自己的map函数list_list = [1,2,4,8,16] def my_map(func,iterable): my_list = [] ...
- python filter函数(40)
一.filter函数简介 filter函数主要用来筛选数据,过滤掉不符合条件的元素,并返回一个迭代器对象,如果要转换为列表list或者元祖tuple,可以使用内置函数list() 或者内置函数tupl ...
随机推荐
- linux系列(二十四):du命令
1.命令格式 du [选项][文件] 2.命令功能 显示每个文件和目录的磁盘使用空间. 3.命令参数 -a或-all 显示目录中个别文件的大小. -b或-bytes 显示目录或文件大小时,以byte为 ...
- 特征工程学习01-sklearn单机特征工程
特征工程学习01-sklearn单机特征工程 小书匠 kindle 0.数据的导入 from sklearn.datasets import load_iris #导入IRIS数据集 iris= ...
- 2017杭电ACM集训队单人排位赛 - 2 题解
1001,水题,直接模拟即可.比赛中开局连wa三发,因为把int写成了bool.. 1002,积分题,比赛中找到了下面这个积分公式, 但是并没什么用,,因为带入以后存在误差,估计是展开了以后出现了误差 ...
- ubuntu video and audio
推荐你直接安装ubuntu-studio系统.里面有默认安装了很多多媒体软件,主要集中在4个方面1.音频编辑:Jack, Ardour, Audacity, Qtractor. Hydrogen, Y ...
- css 文本省略号设置
本文推荐2种方法. 1. css tip:只兼容chrome内核的浏览器.ff不支持. .box { overflow: hidden; /* 溢出时不显示溢出的内容 */ text-overflow ...
- Oralce JDBC jar包下载
下载地址:https://pan.baidu.com/s/1sU7gu4biigEAw-3Bu7yIOA 下载包中包括以下文件: ojdbc5.jarojdbc5dms.jarojdbc5dms_g. ...
- Python-文件读写及修改
文件的读写有三种形式:读.写和追加. 一.读模式 r 和读写模式 r+ 1.读模式 r 读模式r特点:(1)只能读,不能写:(2)文件不存在时会报错. (1)例:读取当前目录下的books.txt文件 ...
- 如何实现 Https拦截进行 非常规“抓包” 珍惜Any 看雪学院 今天 前段时间在自己做开发的时候发现一个很好用的工具,OKHttp的拦截器(何为拦截器?就是在每次发送网络请求的时候都会走的一个回调)大概效果如下:
如何实现 Https拦截进行 非常规“抓包” 珍惜Any 看雪学院 今天 前段时间在自己做开发的时候发现一个很好用的工具,OKHttp的拦截器(何为拦截器?就是在每次发送网络请求的时候都会走的一个回调 ...
- 跨平台免费极简的markdown工具
1. 工具名 typora 2. 工具官网 https://www.typora.io
- Android Studio创建Module-库模块
Android Studio创建Module-库模块 本文链接:https://blog.csdn.net/niuba123456/article/details/81049676 模块是源文件和 ...