python中zip()函数遍历多个列表方法


Posted in Python onFebruary 18, 2021

在对列表的元素进行找寻时,会频繁的说到遍历的理念。对于复杂的遍历要求,如多个列表中查找就显然不适合用for循环。本篇所要带来的是zip() 函数的方法,能够对多个迭代器进行遍历。下面我们就python中zip的说明、语法、使用注意点进行讲解,然后带来遍历多个列表的实例。

1、说明

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。(注:在python3中返回的是zip对象)

2、语法

zip(iterable, ...)

# 其中 iterable,... 表示多个列表、元组、字典、集合、字符串,甚至还可以为 range() 区间。

3、注意

(1)zip 可以平行地遍历多个迭代器,如果可迭代对象的长度不相同将按短的序列为准

(2)python3中zip相当于生成器,遍历过程中产生元组,python2会把元组生成好,一次性返回整份列表

4、实例

使用zip()函数一次处理两个或多个列表中的元素:

alist = ['a1', 'a2', 'a3']
blist = ['1', '2', '3']
for a, b in zip(alist, blist):
  print a, b
# a1 1
# a2 2
# a3 3

python zip()函数实例扩展:

两个或者多个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)

如有两个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)

到此这篇关于python中zip()函数遍历多个列表方法的文章就介绍到这了,更多相关zip()函数如何在python中遍历多个列表内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python守护进程(daemon)代码实例
Mar 06 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
Python探索之实现一个简单的HTTP服务器
Oct 28 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
Feb 07 Python
python中不能连接超时的问题及解决方法
Jun 10 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
django echarts饼图数据动态加载的实例
Aug 12 Python
python生成并处理uuid的实现方式
Mar 03 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
python怎么提高计算速度
Jun 11 Python
python模块内置属性概念及实例
Feb 18 #Python
Python中的流程控制详解
Feb 18 #Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 #Python
python 爬取腾讯视频评论的实现步骤
Feb 18 #Python
Python之qq自动发消息的示例代码
Feb 18 #Python
Python对excel的基本操作方法
Feb 18 #Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 #Python
You might like
基于php缓存的详解
2013/05/15 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
PHP常用的三种设计模式
2017/02/17 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
js判断空对象的实例(超简单)
2016/07/26 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
获取url中用&隔开的参数实例(分享)
2017/05/28 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
tornado捕获和处理404错误的方法
2014/02/26 Python
Python中的各种装饰器详解
2015/04/11 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python reduce()函数的用法小结
2017/11/15 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
Django-migrate报错问题解决方案
2020/04/21 Python
python opencv肤色检测的实现示例
2020/12/21 Python
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
关于读书的演讲稿600字
2014/08/27 职场文书
校园广播稿范文
2015/08/19 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
golang如何去除多余空白字符(含制表符)
2021/04/25 Golang
asyncio异步编程之Task对象详解
2022/03/13 Python
TypeScript 内置高级类型编程示例
2022/09/23 Javascript