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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
使用Python的Flask框架实现视频的流媒体传输
Mar 31 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
python 回调函数和回调方法的实现分析
Mar 23 Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
python使用百度文字识别功能方法详解
Jul 23 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
python 递归调用返回None的问题及解决方法
Mar 16 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 Python
Python中logging日志的四个等级和使用
Nov 17 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
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
Yii中表单用法实例详解
2016/01/05 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
使用graphics.py实现2048小游戏
2015/03/10 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
Python csv文件记录流程代码解析
2020/07/16 Python
python开根号实例讲解
2020/08/30 Python
施工资料员的岗位职责
2013/12/22 职场文书
大学生职业规划前言模板
2013/12/27 职场文书
关于环保的建议书
2014/05/12 职场文书
机械专业求职信范文
2014/07/15 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
放假通知
2015/04/14 职场文书
教师节老师寄语
2015/05/28 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL