zip遍历两个迭代对象
python每日学习分享:
今天学到的如下:
copy后直接运行就知道我学到了啥了
snacks=['bacon','donut','muffin']
counts=[len(n) for n in snacks] #由原列表引申出的列表
#想同时遍历两个列表
#用列表位置来实现
for i in range(len(snacks)):
count=counts[i]
if count>=6:
print(snacks[i])#输出最长单词
#此时下标i必须在循环体内出现两次
print('------')
#用enumerate
for i,name in enumerate(snacks):
count=counts[i]
if count>=6:
print(name)
print('++++++')
#zip,原理是临时元组,每次zip只从中分别取一个元素,也不会占太多内存
for name,count in zip(snacks,counts):
if count>=6:
print(name)
#zip循环的次数为最短列表的长度
snacks.append('wsztxdy')
print(snacks)
for name,count in zip(snacks,counts):
print(name)
#如果想解决不确定列表长短还想用zip的问题
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}')
#会用自带的默认参数来填补空缺

恩,还是挺有趣的~

