python的循環(huán)優(yōu)先使用for循環(huán),迭代對(duì)象優(yōu)先使用內(nèi)置迭代對(duì)象,再用range迭代對(duì)象,最后才選擇用while循環(huán),因?yàn)閒or循環(huán)筆while循環(huán)快。
python循環(huán)可以結(jié)合range生成的索引進(jìn)行遍歷元素。
python循環(huán)可以結(jié)合zip并列遍歷多個(gè)序列元素。
用法
zip(*iterables) --> zip object
描述
python的zip()函數(shù),將入?yún)⒅锌傻鷮?duì)象的并排元素一一配對(duì)打包成元組,返回zip對(duì)象。
入?yún)?/span>
iterables:可迭代對(duì)象,比如字符串,列表、元組、字典等。
出參
配對(duì)成元組后的zip對(duì)象。若入?yún)㈤L(zhǎng)度不一致,配對(duì)長(zhǎng)度以最短的為準(zhǔn)。
示例
>>> 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')]# 長(zhǎng)度取短>>> list(zip('abcdefg','tyxt'))[('a', 't'), ('b', 'y'), ('c', 'x'), ('d', 't')]
描述
python的for循環(huán),可以結(jié)合zip進(jìn)行并行變量多個(gè)序列,優(yōu)先使用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
描述
將zip傳給python的dict()函數(shù),生成字典。
示例
>>> S'梯閱線條'>>> L['t', 'y', 'x', 't']>>> dict(zip(L,S)){'t': '條', 'y': '閱', 'x': '線'}
用法
enumerate(iterable, start=0)
描述
python的enumerate()函數(shù),將可迭代對(duì)象的索引和值組成一一配對(duì)成元組,返回全部元組生成的enumerate對(duì)象。
入?yún)?/span>
iterable:可迭代對(duì)象
start:第一個(gè)元素的索引值,默認(rèn)為0
出參
索引和值配對(duì)成元組的enumerate對(duì)象。
示例
>>> 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')]
描述
python的for循環(huán)與enumerate結(jié)合可以同時(shí)遍歷序列的索引和值。
示例
>>> 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 = 條,
聯(lián)系客服