一、zip()函数

1.语法:

zip(iterable, ...)

参数说明:

  • iterable,…—— 一个或多个迭代器;

在python3中:

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

我们可以使用 list() 转换来输出列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

2.返回值:

  • python2直接返回一个元组列表
  • python3返回一个对象,可以用list(),tuple()把这个对象转成列表或者元组

3.用法:(python3环境)

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped)  # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c))              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]>>> zipped = zip(a,b)
>>> a1, a2 = zip(*ziped)          # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
>>> a1
(1, 2, 3)
>>> a2
(4, 5, 6)>>>c = ('a','b','c')
>>>d = (1,2,3)
>>>aa = zip(c,d)
>>>list(aa)
[('a', 1), ('b', 2), ('c', 3)]

4.关于用*解包

  • 带*号的表达式获取序列剩余部分
'''
Python学习交流群:579817333寻找有志同道合的小伙伴,互帮互助
群里还有不错的视频学习教程和PDF电子书!
'''
>>> a,b,*c = 1,2,3,4,5
>>> a
1
>>> b
2
>>> c
[3, 4, 5]
  • 带*号的表达式获取序列中间部分
>>> a,*b,c = 1,2,3,4,5
>>> a
1
>>> b
[2, 3, 4]
>>> c
5
  • 带*号的表达式获取序列前面部分
>>> *a,b,c = 1,2,3,4,5
>>> a
[1, 2, 3]
>>> b
4
>>> c
5
  • 嵌套解包
'''
Python学习交流群:579817333寻找有志同道合的小伙伴,互帮互助
群里还有不错的视频学习教程和PDF电子书!
'''
>>> (a,b),(c,d) = (1,2),(3,4)
>>> a
1
>>> b
2
>>> c
3
>>> d
4
>>> a,b
(1, 2)
>>> a,b,c,d
(1, 2, 3, 4)

二、map()函数

1.语法:

map(func, iterable, ...)

map()会根据提供的函数对指定序列做映射。

第一个参数 func 是函数名字,它把函数 func 依次作用在后面每个 iterable 的每个元素上,然后并返回执行结果。

2.返回值:

  • python2中:返回一个新的列表。
  • python3中:返回一个迭代器

3.用法:(python3环境)

'''
Python学习交流群:579817333寻找有志同道合的小伙伴,互帮互助
群里还有不错的视频学习教程和PDF电子书!
'''
>>>def square(x) :            # 计算平方数
...     return x ** 2
...
>>> m = map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
>>> list(m)
[1, 4, 9, 16, 25]
>>> m = map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
>>> list(m)
[1, 4, 9, 16, 25]# 提供了两个列表,对相同位置的列表数据进行相加
>>> m = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
>>> list(m)
[3, 7, 11, 15, 19]

4.map()的特殊情况:函数是None

在 python3中,由于map()返回是一个迭代器,所以在这种情况下,map()返回的这个对象其实是不可调用的

>>> m = map(None,[1,2,3,4])
>>> m
<map object at 0x000001EFFCC8E710>
>>> list(m)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable

python中的zip()函数和map()函数相关推荐

  1. python filter函数_第九篇:Python中lambda、filter和map函数

    修修心养养性 世无常贵,事无常师,靠人不如靠己. 大纲 函数类型定义及特性 lambda函数定义及使用 filter函数定义及使用 map函数定义及使用 引入函数类型概念 函数类型定义:python中 ...

  2. python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)

    python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict) 目录

  3. Python 函数式编程,Python中内置的高阶函数:map()、reduce()、filter()与sorted(),Python中返回函数

    函数式编程 是一种编程范式,比函数更高层次的抽象. 函数式编程将计算视为函数而非指令. 纯函数式编程:不需要变量,没有副作用,测试简单. 支持高阶函数,代码简洁. Python 支持的函数式编程 不是 ...

  4. python中zip的使用_浅谈Python中的zip()与*zip()函数详解

    前言 1.实验环境: Python 3.6: 2.示例代码地址:下载示例: 3.本文中元素是指列表.元组.字典等集合类数据类型中的下一级项目(可能是单个元素或嵌套列表). zip(*iterables ...

  5. python中的zip是什么意思_python中zip是什么函数

    python中zip是什么函数? python中的zip()函数是用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少内存. 如果各个 ...

  6. python中常用函数表_Python常用函数记录

    Python常用函数/方法记录 一. Python的random模块: 导入模块: import random 1. random()方法: 如上如可知该函数返回一个[0,1)(左闭右开)的一个随机的 ...

  7. python 字典处理_python numpy求解积分python中的字典操作及字典函数

    字典 dict_fruit = {'apple':'苹果','banana':'香蕉','cherry':'樱桃','avocado':'牛油果','watermelon':'西瓜'} 字典的操作 W ...

  8. python中调用什么模块的什么函数来实现求实数平方根_python语言基础与应用答案...

    python语言基础与应用答案 python3不再区分整数和长整数,统一为()类型. python可以使用(____)函数打开文件,这个函数默认的打开模式为(____). a=[3]alist=[1, ...

  9. Python day10 global关键字、函数递归、匿名函数、map函数的用法详解

    1.global关键字 引用全局变量,在局部全局变量改变,也会改变,global相当于指针,将地址指向全局变量的name name='littlepage'def littepage():global ...

  10. python关键字define_在Python中,使用关键字define定义函数。

    在Python中,使用关键字define定义函数. 以下属于生药学有效性评价的是A:有效成分定量分析B:限量检查C:重金属检测D:基原鉴定 若有如下定义和语句:A:7B:12C:8D:9 图示电路中的 ...

最新文章

  1. [WebService]之代码优先方法与契约优先方法
  2. 搞定Linux只要半年
  3. [deviceone开发]-do_Dialog的基本使用示例
  4. php preg match x,PHP的preg_match噩梦
  5. Java正则表达式简单用法
  6. mysql监控平台怎么做_MySQL监控平台的构建方法
  7. 董付国老师《Python程序设计基础》完美落幕
  8. perl多进程实战之一
  9. SIEMENS报到第一天
  10. 对接京东联盟,签名无效
  11. 渗透工具-TrustedSec 公司的渗透测试框架 (PTF)
  12. 软件工程研究生在读一年总结
  13. 在LUAT中使用MQTT客户端
  14. Curling 2.0{
  15. 弘辽科技:抖音小店差评如何补救?
  16. java jms 消息服务_Java消息服务JMS详解
  17. 自动化运维saltstack(资源)
  18. 利用GSEA对基因表达数据做富集分析
  19. 使用Let's Encrypt申请永久免费通配符证书
  20. 疣猪操纵杆_如何将您的Android设备用作鼠标,键盘,操纵杆等

热门文章

  1. 联想云:借助云计算助力中国企业数字化转型
  2. eclipse web项目 解决“Dynamic Web Module 3.0 requires J
  3. 工作随笔——Intellij_idea-14官方快捷键中文版
  4. mysql常用管理命令
  5. 2013年4月27日星期六
  6. android问题记录
  7. SAP DIMP行业包
  8. 销售组织与工厂对照表
  9. 释疑の语法LOCAL
  10. 4、Power View—卡的应用