暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python循环zip与enumerate

原创 梯阅线条 2022-10-11
811


python的循环优先使用for循环,迭代对象优先使用内置迭代对象,再用range迭代对象,最后才选择用while循环,因为for循环笔while循环快。

python循环可以结合range生成的索引进行遍历元素。

python循环可以结合zip并列遍历多个序列元素。

1.1 python循环与zip

1.1.1 zip()

用法

zip(*iterables) --> zip object

描述

python的zip()函数,将入参中可迭代对象的并排元素一一配对打包成元组,返回zip对象。

入参

iterables:可迭代对象,比如字符串,列表、元组、字典等。

出参

配对成元组后的zip对象。若入参长度不一致,配对长度以最短的为准。

示例

>>> S='梯阅线条'
>>> L=list('tyxt')
>>> Z=zip(S,L)
>>> type(Z)
<class 'zip'>
>>> Z
<zip object at 0x03991968>
>>> ZL=list(Z)
>>> ZL
[('梯', 't'), ('阅', 'y'), ('线', 'x'), ('条', 't')]
# 长度取短
>>> list(zip('abcdefg','tyxt'))
[('a', 't'), ('b', 'y'), ('c', 'x'), ('d', 't')]

1.1.2 并行遍历

描述

python的for循环,可以结合zip进行并行变量多个序列,优先使用zip再使用range。

示例

>>> S='梯阅线条'
>>> L=list('tyxt')
>>> ZL=list(zip(S,L))
>>> ZL
[('梯', 't'), ('阅', 'y'), ('线', 'x'), ('条', 't')]
# 使用zip并行遍历
>>> for (x,y) in ZL:
   print(x,y,end=' ')

   
梯 t 阅 y 线 x 条 t
# 不使用zip并行遍历
>>> for i in range(len(S)):
   print(S[i],L[i],end=' ')

   
梯 t 阅 y 线 x 条 t

1.1.3 zip与字典

描述

将zip传给python的dict()函数,生成字典。

示例

>>> S
'梯阅线条'
>>> L
['t', 'y', 'x', 't']
>>> dict(zip(L,S))
{'t': '条', 'y': '阅', 'x': '线'}

1.2 python循环与enumerate

1.2.1 enumerate()

用法

enumerate(iterable, start=0)

描述

python的enumerate()函数,将可迭代对象的索引和值组成一一配对成元组,返回全部元组生成的enumerate对象。

入参

iterable:可迭代对象

start:第一个元素的索引值,默认为0

出参

索引和值配对成元组的enumerate对象。

示例

>>> S
'梯阅线条'
>>> list(enumerate(S))
[(0, '梯'), (1, '阅'), (2, '线'), (3, '条')]
>>> list(enumerate(S,1))
[(1, '梯'), (2, '阅'), (3, '线'), (4, '条')]
# 字典返回索引+键
>>> list(enumerate({'a':1,'b':2}))
[(0, 'a'), (1, 'b')]

1.2.2 for循环遍历索引和值

描述

python的for循环与enumerate结合可以同时遍历序列的索引和值。

示例

>>> S
'梯阅线条'
>>> i=0
>>> for x in S:
   print(i,'=',x,end=',')
   i+=1

   
0 = 梯,1 = 阅,2 = 线,3 = 条,
>>> for (ind,it) in enumerate(S):
   print(ind,'=',it,end=',')

   
0 = 梯,1 = 阅,2 = 线,3 = 条,
# 从11开始
>>> for (ind,it) in enumerate(S,11):
   print(ind,'=',it,end=',')

   
11 = 梯,12 = 阅,13 = 线,14 = 条,


版权声明©

本文首发微信公众号:梯阅线条

原创不易,转载请注明出处。

更多内容参考python知识分享或软件测试开发目录。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论