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实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 Python
python负载均衡的简单实现方法
Feb 04 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
浅谈Django的缓存机制
Aug 23 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
Java多线程实现四种方式原理详解
Jun 02 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
python代数式括号有效性检验示例代码
Oct 04 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中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
PHP加密技术的简单实现
2016/09/04 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
jstree的简单实例
2016/12/01 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
python实现爬取千万淘宝商品的方法
2015/06/30 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
python 魔法函数实例及解析
2019/09/25 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
总经理职责
2013/12/22 职场文书
应届本科生推荐信范文
2013/12/25 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
html5实现点击弹出图片功能
2021/07/16 HTML / CSS