欢迎光临散文网 会员登陆 & 注册

zip遍历两个迭代对象

2021-11-13 15:57 作者:与时代脱轨的级数  | 我要投稿

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}')

#会用自带的默认参数来填补空缺

zip_longest函数输出结果

恩,还是挺有趣的~


zip遍历两个迭代对象的评论 (共 条)

分享到微博请遵守国家法律