python 使用zip()函数
一、zip(
*iterables)
是内建函数
它将返回一个元组迭代器,其中 i-th 元组将包含传入的每个迭代器中的 i-th 元素。一旦最短的输入迭代用完,该迭代器将停止 。
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
传入参数:元组、列表、字典等迭代器。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
二、使用zip()函数
1、没有参数,则返回的是空列表
zz=zip()print(zz,type(zz))print(list(zz))
2、有一个参数,则返回的是每一个元组组成的列表。
num = [11, 22, 33,44,55]zz= zip(num)print(list(zz))
3、有多个参数,则返回的是对应的元组组成的列表。
names = ['zhang', 'wang', 'li', 'yang']ages = [18,20, 22, 19]print(list(zip(names, ages)))
4、如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
zz =list(zip(range(3), 'ABCDEF'))print(zz)
5、可以并行迭代多个iterable,并使用循环输出信息
names = ['zhang', 'wang', 'li', 'yang']ages = [18,20, 22, 19]for name,age in zip(names,ages): print(name,age)
并行迭代多个iterable,做加减乘除运算。
num1 = [10, 20, 30,5]num2 = [5, 6, 5,8]operators = ['+', '-', '/','*']for n1,op,n2 in zip(num1,operators,num2): print(f'{n1}{op}{n2}={eval(str(n1)+op+str(n2))}')
6、可以同时遍历多个字典的数据
done = {'name': 'Mike', 'last_name': 'Wei', 'job': 'Python'}dtwo = {'name': 'Sanse', 'last_name': 'Doe', 'job': 'Manager'}for (k1,v1),(k2,v2) in zip(done.items(),dtwo.items()): print(k1,v1) print(k2,v2)
7、将两个列表中的数据构建成列表再进行排序
names = ['zhang', 'wang', 'li', 'yang']ages = [18,20, 22, 19]data = list(zip(names, ages))print(data)#根据字母升序排序data.sort()print(data)
8、可以使用 sorted() 和 zip() 一起使用来进行升序排序:
names = ['zhang', 'wang', 'li', 'yang']ages = [18,20, 22, 19]data = sorted(zip(names, ages))print(data)
9、将两个列表中的数据构建成字典
names = ['zhang', 'wang', 'li', 'yang']ages = [18,20, 22, 19]stu = dict(zip(names, ages))print(stu)
10、利用 * 号操作符,可以将列表解压为元组。
names = ['zhang', 'wang', 'li', 'yang']ages = [18,20, 22, 19]# 转换为列表print(list(zip(names,ages)))# 解压n,a=zip(*zip(names,ages))print(n)print(a)
来源地址:https://blog.csdn.net/hlx20080808/article/details/127847063
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341