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的面向对象思想分析
Jan 14 Python
总结python爬虫抓站的实用技巧
Aug 09 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
Python干货:分享Python绘制六种可视化图表
Aug 27 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
python装饰器练习题及答案
Nov 01 Python
使用python实现CGI环境搭建过程解析
Apr 28 Python
Python生成随机验证码代码实例解析
Jun 09 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 Python
golang/python实现归并排序实例代码
Aug 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
PHP中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php上传文件常见问题总结
2015/02/03 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
继续学习javascript闭包
2015/12/03 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
python多线程扫描端口示例
2014/01/16 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
企业厂长岗位职责
2013/12/17 职场文书
中文专业毕业生自荐书范文
2014/01/04 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
校园演讲稿汇总
2014/05/21 职场文书
五水共治一句话承诺
2014/05/30 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
2019银行竞聘书
2019/06/21 职场文书
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫