分享

python循环zip与enumerate

 禁忌石 2022-10-12 发布于浙江

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 = 条,

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多