Files
Python_CookBook_repo/4.迭代器与生成器/11.迭代多个序列.py
2025-09-10 16:12:45 +08:00

30 lines
1.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

if __name__ == '__main__':
# 如果想要同时迭代多个序列那么可以使用zip函数
list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd', 'e']
for i, j in zip(list1, list2):
print(i, j)
# zip遵循最短木板原则迭代长度等于最短的可迭代对象长度如果想要打破这种限制请使用itertools.zip_longest()
from itertools import zip_longest
short_list = [1, 2, 3]
# fillvalue字段用来填充短列表的缺失值默认为None
for i, j in zip_longest(short_list, list1, fillvalue=0):
print(i, j)
# zip函数会构建一个元组它的长度与输入的可迭代对象数量有关
for i in zip(short_list, list2, list1):
print(i)
# 双对象元组可以直接视作键值对转成字典
dic = dict(zip(list1, list2))
print(dic)
# 重点zip函数返回的是一个一次性迭代器如果需要长久保存请转成列表在内存里持久化
storage_list = list(zip(list1, list2))