zip遍歷兩個(gè)迭代對(duì)象
python每日學(xué)習(xí)分享:
今天學(xué)到的如下:
copy后直接運(yùn)行就知道我學(xué)到了啥了
snacks=['bacon','donut','muffin']
counts=[len(n) for n in snacks] #由原列表引申出的列表
#想同時(shí)遍歷兩個(gè)列表
#用列表位置來(lái)實(shí)現(xiàn)
for i in range(len(snacks)):
? ? count=counts[i]
? ? if count>=6:
? ? ? ? print(snacks[i])#輸出最長(zhǎng)單詞
#此時(shí)下標(biāo)i必須在循環(huán)體內(nèi)出現(xiàn)兩次
print('------')
#用enumerate
for i,name in enumerate(snacks):
? ? count=counts[i]
? ? if count>=6:
? ? ? ? print(name)
print('++++++')
#zip,原理是臨時(shí)元組,每次zip只從中分別取一個(gè)元素,也不會(huì)占太多內(nèi)存
for name,count in zip(snacks,counts):
? ? if count>=6:
? ? ? ? print(name)
#zip循環(huán)的次數(shù)為最短列表的長(zhǎng)度
snacks.append('wsztxdy')
print(snacks)
for name,count in zip(snacks,counts):
? ? print(name)
#如果想解決不確定列表長(zhǎng)短還想用zip的問(wèn)題
import itertools
snacks=['bacon','donut','muffin']
counts=[len(n) for n in snacks]
snacks.append('wsztxdy')
for name,count in itertools.zip_longest(snacks,counts):
? ? print(f'{name} : {count}')
#會(huì)用自帶的默認(rèn)參數(shù)來(lái)填補(bǔ)空缺

恩,還是挺有趣的~