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知识分享或软件测试开发目录。