def test_zip():
"""
zip函数:聚合打包
a.返回一个 zip 对象
b.它是元组的迭代器,其中每个传递的迭代器中的第一项配对在一起,然后每个传递的迭代器中的第二项配对在一起等
c.如果传递的迭代器具有不同的长度,则具有最少项的迭代器决定新迭代器的长度
d.如果我们不传递任何参数,zip() 返回一个空迭代器
e.如果传递单个可迭代对象,则 zip() 返回一个元组迭代器,每个元组只有一个元素
:return:
"""
s1 = (11, 22, 33, 44, 55)
s2 = ('a', 'b', 'c', 'd', 'e', 'f', 'g')
s3 = (111, 222, 333, 444, 555)
s4 = (1111, 22222)
res1 = zip(s1, s2)
print("111", res1) # 111 <zip object at 0x000002BC1E3FE900>
val1 = list(res1) # 嵌套二元元组的列表可以转化为字典
print("222", val1) # 222 [(11, 'a'), (22, 'b'), (33, 'c'), (44, 'd'), (55, 'e')]
val2 = dict(val1)
print("333", val2) # 333 {11: 'a', 22: 'b', 33: 'c', 44: 'd', 55: 'e'}
print(dict(zip(s2, s1))) # {'a': 11, 'b': 22, 'c': 33, 'd': 44, 'e': 55}
val3 = list(zip(s1, s2, s3, s4))
print("444", val3) # 444 [(11, 'a', 111, 1111), (22, 'b', 222, 22222)]