1. 功能介绍

map 调用函数遍历可迭代对象,返回一个迭代器对象

map(function, iterable, ...)

可以传递多个迭代器对象给 map 的迭代函数,这个函数接收参数的个数必须和迭代对象个数相同

2. 例子讲解

下面的是一个使用 map 访问整形 list 的例子,

我们定义了一个整形 List,并且通过 Map 对 list 的每一项调用 square 函数来执行计算

#!/usr/bin/env python

# coding: utf-8

def square(x):

return x * x

nums = [1, 2, 3, 4, 5]

nums_squared = map(square, nums)

for num in nums_squared:

print(num)

这个 square() 函数计算参数的平方

def square(x):

return x * x

我们定义了一个整数列表

nums = [1, 2, 3, 4, 5]

这个 map 函数对列表的每一项效用 square() 函数

nums_squared = map(square, nums)

循环迭代打印结果

for num in nums_squared:

print(num)

运行程序,输出结果

$ ./python_map.py

1

4

9

16

25

3. Python map 的实现逻辑

下面的方法等价于与 map 调用,my_map 函数 与 map 实现相同的功能

#!/usr/bin/env python

# coding: utf-8

def square(x):

return x * x

def my_map(func, iterable):

for i in iterable:

yield func(i)

nums = [1, 2, 3, 4, 5]

nums_squared = my_map(square, nums)

for num in nums_squared:

print(num)

4. Python map 结合 lambda 使用

下面的例子使用 lambda 创建了一个匿名函数给 map 调用,计算列表元素的平方

#!/usr/bin/env python

# coding: utf-8

nums = [1, 2, 3, 4, 5]

nums_squared = map(lambda x: x*x, nums)

for num in nums_squared:

print(num)

5. Python map 使用多个迭代器参数

我们前面提到过,可以传递多个迭代器参数给 map 的函数调用,下面的例子传递了两个整数列表,用两个列表提供的值相乘

#!/usr/bin/env python

# coding: utf-8

def multiply(x, y):

return x * y

nums1 = [1, 2, 3, 4, 5]

nums2 = [6, 7, 8, 9, 10]

mult = map(multiply, nums1, nums2)

for num in mult:

print(num)

这个函数必须接收两个参数,因为有两个可迭代的 list 传递给 map

#!/usr/bin/env python

# coding: utf-8

def multiply(x, y):

return x * y

运行结果如下

$ ./python_map_iterables.py

6

14

24

36

50

6. Python map 迭代多个函数

这个例子展示如何在map中使用多个函数,我们对整数列表同时使用了加法和乘法函数

#!/usr/bin/env python

# coding: utf-8

def add(x):

return x + x

def square(x):

return x * x

nums = [1, 2, 3, 4, 5]

for i in nums:

vals = list(map(lambda x: x(i), (add, square)))

print(vals)

我们循环访问整数 list,在每次循环中我们调用 add() 和 square() 函数,创建了一个 2 个值的 list 结果

for i in nums:

vals = list(map(lambda x: x(i), (add, square)))

print(vals)

每一行的第一个值是加法结果,第二个值是乘法结果

$ ./python_map_multiple_funcs.py

[2, 1]

[4, 4]

[6, 9]

[8, 16]

[10, 25]

7. Python list 列表推导式

python map() 与列表推导式可以实现相同的功能,这个例子用列表推导式创建了一个平方值列表

#!/usr/bin/env python

# coding: utf-8

def square(x):

return x * x

nums = [1, 2, 3, 4, 5]

nums_squared = [square(num) for num in nums]

for num in nums_squared:

print(num)

python迭代函数例题_python map 函数使用,遍历访问可迭代对象相关推荐

  1. python map函数参数_python map函数

    # map会对传入的集合或者序列(list_x)的每一个元素做为参数传入,前面的方法square进行计算 # 并且会接受函数的返回结果 # map 函数是将原来集合里的每一个元素根据一定的方法映射到新 ...

  2. python怎么用lambda和map函数_Python之lambda匿名函数及map和filter的用法

    现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}] t1 = (('a'), ('c')) t2 = ( ...

  3. python map函数的作用_Python map()函数介绍及用法

    Python函数式编程之map() Python中map().filter().reduce()这三个都是应用于序列的内置函数. 格式: 1 map(func, seq1[, seq2,-]) 第一个 ...

  4. python map函数的作用_python map函数用法详解

    原博文 2018-05-02 16:24 − python中的map()函数是一个内置的高阶函数,一般用法是map(function, iterable).需要传入一个函数,这个函数可以是内置的,也可 ...

  5. python中map函数返回值类型_python map函数

    from:https://www.cnblogs.com/AlwaysWIN/p/6202320.html 描述 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序 ...

  6. python中list函数例题_python中的set函数、列表的操作

    一.set函数 set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 例题: 1.set函数求交集(&).差集(-).并集(|) s1 = se ...

  7. python基础教程:filter(),map()函数用法

    filter()函数是什么 filter(func, iterable) filter接收的是可迭代对象中的每个元素作为func的参数,返回的是bool值,函数中设置的是判断条件 返回的是在bool值 ...

  8. python quit函数作用_Python常用函数学习笔记

    Python函数很多,常用的函数不同的场景侧重不同,学而时习之,不亦乐乎? abs # 求绝对值 Capitilize函数: # 有列表 li = ['aB', 'egon', 'smith', 'p ...

  9. python 函数进阶_python之函数进阶

    1. 今日内容 1.1 函数的参数 *的魔性用法 函数形参最终顺序 1.2名称空间 全局名称空间,局部名称空间,内置名称空间 取值顺序与加载顺序 作用域 内置函数:globals() locals() ...

最新文章

  1. MIT联合波士顿咨询:全球21个行业,对话3000名高管,AI如何重塑商业形态? | 雷报
  2. python开发需要掌握哪些知识-Python的8个基础知识点,新手必须背下来!
  3. 为什么 Java 线程没有 Running 状态?
  4. C语言:替换字符串中某一段子字符串
  5. 计算机一级信息技术基础知识,计算机一级考试之信息技术基础.doc
  6. python abs的功能_Python Pandas DataFrame.abs()用法及代码示例
  7. SendMessage 与 PostMessage
  8. 桌面计算机名水印,去掉电脑桌面的Windows10教育版水印的方法
  9. 浅谈如何带领好一个团队
  10. 37岁程序员被裁,120天没找到工作,无奈去小公司,结果蒙了
  11. QQ秀文字,很酷的!
  12. 判断dataGridView是否重复值
  13. (Sentinel-2A、Sentinel-2B)2017年全年中国地区数据
  14. 编程之美 1.3 一摞烙饼的排序
  15. 电脑莫名奇妙地出现了嘀嗒壁纸,只有下拉的水滴图标,找不到文件所在位置,怎么删除?
  16. jq ajax xhrfields,为什么jQuery的.ajax()方法不发送会话cookie?
  17. 360与wifi共享精灵谁更随身?
  18. 在 CentOS 7 中安装 Nextcloud
  19. mxc_uart driver 加载过程
  20. JavaEE——Spring AOP(面向切面编程)

热门文章

  1. 【clickhouse】Code: 135. DB::Exception: Received from xxx:9000. DB::Exception: Indices in strings are
  2. 【Java】Base64编码与解码
  3. Spring : Spring 切入点(Pointcut)
  4. Spring Boot如何以优雅的姿势校验参数
  5. Spring boot 源码:Bean的Scope
  6. Hadoop Exception in createBlockOutputStream
  7. 6年前的Dubbo,2年前的Spring Cloud,都被这个架构干掉了!
  8. Java多线程学习四十三:
  9. Linux终端登录微信,Ubuntu18.04安装微信(Linux通用)
  10. info命令Linux,Linux zipinfo命令