• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
愿为素心人 显示全部楼层 发表于 2021-10-25 19:37:43 |阅读模式 打印 上一主题 下一主题
在对列表的元素举行找寻时,会频仍的说到遍历的理念。对于复杂的遍历要求,如多个列表中查找就显然不适适用for循环。本篇所要带来的是zip() 函数的方法,可以或许对多个迭代器举行遍历。下面我们就python中zip的分析、语法、使用留意点举行解说,然后带来遍历多个列表的实例。
1、分析

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组构成的列表。(注:在python3中返回的是zip对象)
2、语法
  1. zip(iterable, ...)
  2. # 其中 iterable,... 表示多个列表、元组、字典、集合、字符串,甚至还可以为 range() 区间。
复制代码
3、留意

(1)zip 可以平行地遍历多个迭代器,如果可迭代对象的长度不雷同将按短的序列为准
(2)python3中zip相当于天生器,遍历过程中产生元组,python2会把元组天生好,一次性返回整份列表
4、实例

使用zip()函数一次处理两个或多个列表中的元素:
  1. alist = ['a1', 'a2', 'a3']
  2. blist = ['1', '2', '3']
  3. for a, b in zip(alist, blist):
  4.   print a, b
  5. # a1 1
  6. # a2 2
  7. # a3 3
复制代码
python zip()函数实例扩展:
两个大概多个list
  1. a=[1,2,3]
  2. b=[4,5,6]
  3. c=[7,8,9,10]
  4. #两个list去zip()
  5. zip(a,b)
  6. #三个list去zip(),返回的对象的长度和最小的迭代器一致
  7. zip(a,b,c)
  8. #用list()查看zip后的数据
  9. list(zip(a,b)) #[(1, 4), (2, 5), (3, 6)]
  10. list(zip(a,b,c)) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
  11. #使用zip(*zip())解压
  12. a1,b1=zip(*zip(a,b))
  13. #两个list迭代输出
  14. for i,j in zip(a,b):
  15. print(i,j)
复制代码
如有两个list,一个是一层,一个是嵌套,要构成一个dict
  1. #将zip对象转换成字典看看
  2. a=[1,2,3]
  3. d=[['a','b','c'],['aa','bb','cc'],['aaa','bbb','ccc']]
  4. dict(zip(a,d)) #{1: ['a', 'b', 'c'], 2: ['aa', 'bb', 'cc'], 3: ['aaa', 'bbb', 'ccc']}
  5. #如果一个是key值,一个内层list就是一行value
  6. [dict(zip(a,value)) for value in d] #[{1: 'a', 2: 'b', 3: 'c'},
  7. {1: 'aa', 2: 'bb', 3: 'cc'},
  8. {1: 'aaa', 2: 'bbb', 3: 'ccc'}]
  9. #或者是
  10. l=[]
  11. for value in d:
  12. dict={}
  13. for i in range(len(value)):
  14.   dict[a[i]]=value[i]
  15. l.append(dict)
复制代码
到此这篇关于python中zip()函数遍历多个列表方法的文章就介绍到这了,更多干系zip()函数如安在python中遍历多个列表内容请搜刮草根技术分享以前的文章或继续浏览下面的干系文章盼望各人以后多多支持草根技术分享!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作