python zip()函数的使用示例


Posted in Python onSeptember 23, 2020

zip()函数将可迭代的对象作为参数,将对象对应的元素打包成一个个元祖,然后返回由这些元祖组成的对象,我们可以使用list()转换成列表

如果各个迭代器的元素个数不一致,则返回列表长度和最小的对象相同,用*好操作符,可以将元祖解压为列表

1.两个或者多个list

a=[1,2,3]
b=[4,5,6]
c=[7,8,9,10]  

#两个list去zip()
zip(a,b)

#三个list去zip(),返回的对象的长度和最小的迭代器一致
zip(a,b,c)

#用list()查看zip后的数据
list(zip(a,b)) #[(1, 4), (2, 5), (3, 6)]
list(zip(a,b,c)) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

#使用zip(*zip())解压
a1,b1=zip(*zip(a,b))

#两个list迭代输出
for i,j in zip(a,b):
  print(i,j)

输出:

1 4
2 5
3 6

2.如有两个list,一个是一层,一个是嵌套,要组成一个dict

#将zip对象转换成字典看看
a=[1,2,3]
d=[['a','b','c'],['aa','bb','cc'],['aaa','bbb','ccc']]

dict(zip(a,d)) #{1: ['a', 'b', 'c'], 2: ['aa', 'bb', 'cc'], 3: ['aaa', 'bbb', 'ccc']}
#如果一个是key值,一个内层list就是一行value
[dict(zip(a,value)) for value in d] #[{1: 'a', 2: 'b', 3: 'c'},
 {1: 'aa', 2: 'bb', 3: 'cc'},
 {1: 'aaa', 2: 'bbb', 3: 'ccc'}]

#或者是  
l=[]
for value in d:
  dict={}
  for i in range(len(value)):
    dict[a[i]]=value[i]
  l.append(dict)

3.同时遍历两个dict

如果长度相同的dict直接用zip函数即可同时for
如果长度不同,可以先把这两个dict整合进一个list再for

dict_1=dict(zip(a,b)) #{1: 4, 2: 5, 3: 6}
dict_2=dict(zip(a,d)) # {1: ['a', 'b', 'c'], 2: ['aa', 'bb', 'cc'], 3: ['aaa', 'bbb', 'ccc']}


#key的遍历
for i,j in zip(dict_1,dict_2):
  print(i,j)

输出:

1 1
2 2
3 3

#values的遍历
for i ,j in zip(dict_1.values(),dict_2.values()):
  print(i,j)

输出:

4 ['a', 'b', 'c']
5 ['aa', 'bb', 'cc']
6 ['aaa', 'bbb', 'ccc']

#同时遍历,需要2个dict的value都是多层的
dict_4=dict(zip(b,d))  #{4: ['a', 'b', 'c'], 5: ['aa', 'bb', 'cc'], 6: ['aaa', 'bbb', 'ccc']}
for i,j in zip(dict_4,dict_2):
  for k in dict_4[i]:
    print(i,k)
  for m in dict_2[j]:
    print(j,m)

输出:

4 a
4 b
4 c
1 a
1 b
1 c
5 aa
5 bb
5 cc
2 aa
2 bb
2 cc
6 aaa
6 bbb
6 ccc
3 aaa
3 bbb
3 ccc

以上就是python zip()的使用示例的详细内容,更多关于python zip()的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中为什么要用self探讨
Apr 14 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
微信跳一跳python代码实现
Jan 05 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
Django框架实现的简单分页功能示例
Dec 04 Python
PyQt5固定窗口大小的方法
Jun 18 Python
pandas通过字典生成dataframe的方法步骤
Jul 23 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
python类共享变量操作
Sep 03 Python
python实现网络五子棋
Apr 11 Python
Pandas加速代码之避免使用for循环
May 30 Python
python 判断一组数据是否符合正态分布
Sep 23 #Python
python合并多个excel文件的示例
Sep 23 #Python
详解Python yaml模块
Sep 23 #Python
python 绘制场景热力图的示例
Sep 23 #Python
Anaconda使用IDLE的实现示例
Sep 23 #Python
python获取时间戳的实现示例(10位和13位)
Sep 23 #Python
python rsa-oaep加密的示例代码
Sep 23 #Python
You might like
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
php下获取客户端ip地址的函数
2010/03/15 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
PHP实现文件上传与下载
2020/08/28 PHP
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
动态加载js、css的简单实现代码
2016/05/26 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
python与C互相调用的方法详解
2017/07/14 Python
详细分析python3的reduce函数
2017/12/05 Python
python3 爬取图片的实例代码
2018/11/06 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
后勤岗位职责
2013/11/26 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
部门活动策划方案
2014/08/16 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
人民检察院起诉书
2015/05/20 职场文书
离婚被告答辩状
2015/05/22 职场文书
部门主管竞聘书
2015/09/15 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
医学会议开幕词
2016/03/03 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang