Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python map函数

python map函数

原创
作者头像
猿说编程[Python和C]
修改于 2021-04-12 07:41:58
修改于 2021-04-12 07:41:58
84000
代码可运行
举报
文章被收录于专栏:猿说编程猿说编程
运行总次数:0
代码可运行

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

一.语法定义

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''
function:函数名
iterable:一个序列或者多个序列,实际上这就是function对应的实参
'''
map(function, iterable, ...)

参数:

function:函数名

iterable:一个序列或者多个序列,实际上这就是function对应的实参

返回值:

返回值是迭代器,注意返回的结果只能迭代一次,如果需要多次使用请提前保存结果并处理。

二.实战练习

1.使用map函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): https://www.codersrc.com
@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)

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[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函数配合匿名函数一起使用
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 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)

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
[11, 22, 33, 55, 66, 77]

注意:如果map()函数中的函数是多个参数,那么map传参的时候也应该传递多个序列.

三.效率对比

对比以下效率,向列表中存入一千万条数据,比较下耗时情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
普通for循环耗时: 1.1869014999999998
列表推导式循环耗时: 0.5339119999999999
map映射函数耗时: 0.9047431000000001

根据测试结果看来:列表推导式效率 > map映射函数 > 普通for循环

四.重点总结

1.map函数的参数是由函数和一个序列或者多个序列构成;

2.map函数处理的结果是迭代器,而且只能迭代一次,如果需要多次使用,请提前保存;

转载请注明猿说Python » python map函数

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python的lambda表达式、filter、map、reduce等函数的用法
参考链接: Python lambda (匿名函数) | filter, map, reduce
用户7886150
2021/01/12
9630
Python中匿名函数与内置高阶函数详解
大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示。刚入门的读者千万不要错过!
刘早起
2020/06/04
7060
python iterator(迭代器)
迭代:重复做一件事 iterable(可迭代)对象:支持“每次仅返回自身所包含的其中一个元素”的对象 iterable对象实现了__iter__方法     序列类型,如:list、str、tuple     非序列类型,如:dict、file     用户自定义的一些包含了__iter__()或__getitem__方法的类           用dir(object)时,只要有__iter__()方法或__getitem__方法都是iterable对象。     object.__iter__()   每运行一次,都返回一个迭代器对象的内存地址     例:i1=list1.__iter__()       返回一个迭代器对象            i1.next()            i1.next()            .... 迭代器(iterator)     迭代器又称为游标(cursor),它是程序设计的软件设计模式,是一种可在容器物件(container)上实现元素遍历的接口。     迭代器是一种特殊的数据结构,当然在python中,它也是以对象的形式存在的。简单理解方式:对于一个集体中的每一个元素,想要执行遍历,那么针对这个集体的迭代器就定义了遍历该集体中每一个元素的顺序或方法。     迭代器本身是不可逆的。     可以使用一个“可迭代对象”的__iter__()方法生成一个“迭代器对象”            In [31]: print list1            [(1, 2), (3, 4), (5, 6)]            In [32]: iterable1=list1.__iter__()            In [33]: iterable1.next()            Out[33]: (1, 2)            In [34]: iterable1.next()            Out[34]: (3, 4)            In [35]: iterable1.next()            Out[35]: (5, 6)     也可以使用iter函数生成一个迭代器对象。用法: iter(container_object)            In [37]: iterable1=iter(list1)            In [38]: iterable1.next()            Out[38]: (1, 2)            In [39]: iterable1.next()            Out[39]: (3, 4)            In [40]: iterable1.next()            Out[40]: (5, 6) 在python中,迭代器是遵循迭代协议的对象;使用iter()函数可以从任何序列对象中生成一个迭代器对象 若要使用迭代器,需要在类中定义next()方法(python3中是 __next__()) 要使得迭代器指向下一个元素,则使用成员函数next() (在python3中,是函数next(),而非成员函数) 当没有元素时,则触发StopIteration异常     for循环可用在任何可迭代对象:     for循环开始时,会通过迭代协议传递给iter()内置函数,从而能够从可迭代对象中获得一个迭代器,返回的对象含有需要的next方法。 python的列表解析:     根据一个已存在列表再生成另一个新列表时,可以使用列表解析功能。     列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置于[]中。     语法:[expression for iter_var in iterable_object]                [expression for iter_var in iterable_object if condition_expression]
py3study
2020/01/15
4620
匿名函数,内置函数,闭包
练习: def func(a,b): return a + b print(func(4,5)) # 构建匿名函数 func1 = lambda a,b: a + b print(func1(1,2))
py3study
2020/01/16
5870
面试题-python3 内置函数map reduce filter 如何使用?
map() 会根据提供的函数对指定序列做映射。 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。 map() 函数语法:map(function, iterable, …)
上海-悠悠
2021/04/09
7020
python reduce函数
python内置函数reduce 和 map/filter等函数有点类似,都是通过函数对迭代器中的元素进行遍历操作,唯一区别是reduce函数是返回计算结果是一个值,而map/filter是返回一个序列或者迭代器,下面在做详细解释
猿说编程[Python和C]
2020/03/12
8670
Python高级用法总结
最简单的方法:新建列表,遍历原三维列表,判断一维数据是否为a,若为a,则将该元素append至新列表中。 缺点:代码太繁琐,对于Python而言,执行速度会变慢很多。 针对场景1,我们首先应该想到用列表解析式来解决处理,一行代码即可解决:
oYabea
2020/09/07
7190
40.python filter函数
filter函数主要用来筛选数据,过滤掉不符合条件的元素,并返回一个迭代器对象,如果要转换为列表list或者元祖tuple,可以使用内置函数list() 或者内置函数tuple()来转换;
猿说编程[Python和C]
2020/03/12
9990
40.python filter函数
python reduce/map/filter函数区别
python 中 reduce / map / filter 三个函数很容易搞混淆,虽然利用函数对迭代器或者序列中的元素操作,但是适用的场景却各不相同;
猿说编程[Python和C]
2020/03/12
8450
0基础学习PyFlink——Map和Reduce函数处理单词统计
在很多讲解大数据的案例中,往往都会以一个单词统计例子来抛砖引玉。本文也不免俗,例子来源于PyFlink的《Table API Tutorial》,我们会通过几种方式统计不同的单词出现的个数,从而达到循序渐进的学习效果。
方亮
2023/10/23
2980
0基础学习PyFlink——Map和Reduce函数处理单词统计
Python 技巧十则
据Stack Overflow上的数据显示,Python是增长最快的编程语言。福布斯的一篇最新报告(https://www.whatech.com/development/press-release/442278-why-developers-vote-python-as-the-best-application-programming-language)指出,Python去年增长了456%。Netflix使用Python,IBM使用Python,其他数百家公司都使用Python。对了,不要忘记Dropbox,它也是用Python创建的。根据Dice的研究显示(https://insights.dice.com/2016/02/01/whats-hot-and-not-in-tech-skills/),Python也是最热门的语言之一,并且根据《Popularityof Programming Language Index(https://pypl.github.io/PYPL.html)》来看,它也是世界上最受欢迎的编程语言。
AI研习社
2019/12/09
1.1K0
现学现用的 10 个 Python 技巧
原文:10 Python Tips and Tricks You Should Learn Today
Crossin先生
2020/04/08
9400
Python Map 函数
map()是一个 Python 内建函数,它允许你不需要使用循环就可以编写简洁的代码。
雪梦科技
2020/07/14
8320
Python Map 函数
Python高阶函数使用总结!
审稿人:耿远昊,Datawhale成员,华东师范大学,开源教程《Joyful-Pandas》核心贡献者。
Datawhale
2020/11/16
5310
Python高阶函数使用总结!
Python中map函数的解释和可视化
先重温一下迭代(Iteration)、迭代器对象(iterable)、迭代器(iterator )的概念:
统计学家
2020/02/12
1.1K0
Python中map函数的解释和可视化
python 列表推导式(经典代码)
截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高。
猿说编程[Python和C]
2020/02/27
1.2K0
python 列表推导式(经典代码)
08 . Python3高阶函数之迭代器、装饰器
你:可以呀,可以写成plus = lambda x:x+1类似这样,以后再调用plus就可以了,但这样不就失去了lambda的意义了,明明人家叫匿名函数呀,你起了名字有什么用呢?
iginkgo18
2020/09/27
6130
08 . Python3高阶函数之迭代器、装饰器
一文读懂python的map、reduce函数
这对兄弟是出现频率极高且相当实用的python函数,初学者会较难理解,看完本文你就能搞定它们喽!
朱卫军 AI Python
2022/04/02
3900
一文读懂python的map、reduce函数
4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
野原测试开发
2019/07/24
5680
4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点
python初学者必须吃透的这些内置函数
所谓内置函数,就是Python提供的, 可以直接拿来直接用的函数,比如大家熟悉的print,range、input等,也有不是很熟,但是很重要的,如enumerate、zip、join等,Python内置的这些函数非常精巧且强大的,对初学者来说,经常会忽略,但是偶尔会碰到,我也是用了一段时间python之后才发现,还有这么好的函数,每个函数都非常经典,而且经过严格测试,使用内置函数,不用自己闭门造车,并且代码简洁易读了很多,真是方便又实用,值得花时间进行体系化研究学习。
程序员小新
2021/12/20
8080
python初学者必须吃透的这些内置函数
相关推荐
Python的lambda表达式、filter、map、reduce等函数的用法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验