• python 使用zip()函数


    一、zip(*iterables)是内建函数 

          它将返回一个元组迭代器,其中 i-th 元组将包含传入的每个迭代器中的 i-th 元素。一旦最短的输入迭代用完,该迭代器将停止 。

        将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 

        传入参数:元组、列表、字典等迭代器。

         如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

     二、使用zip()函数

     1、没有参数,则返回的是空列表

    1. zz=zip()
    2. print(zz,type(zz))
    3. print(list(zz))

    2、有一个参数,则返回的是每一个元组组成的列表。 

    1. num = [11, 22, 33,44,55]
    2. zz= zip(num)
    3. print(list(zz))

     3、有多个参数,则返回的是对应的元组组成的列表。 

    1. names = ['zhang', 'wang', 'li', 'yang']
    2. ages = [18,20, 22, 19]
    3. print(list(zip(names, ages)))

     4、如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同

    1. zz =list(zip(range(3), 'ABCDEF'))
    2. print(zz)

     5、可以并行迭代多个iterable,并使用循环输出信息

    1. names = ['zhang', 'wang', 'li', 'yang']
    2. ages = [18,20, 22, 19]
    3. for name,age in zip(names,ages):
    4. print(name,age)

     并行迭代多个iterable,做加减乘除运算。

    1. num1 = [10, 20, 30,5]
    2. num2 = [5, 6, 5,8]
    3. operators = ['+', '-', '/','*']
    4. for n1,op,n2 in zip(num1,operators,num2):
    5. print(f'{n1}{op}{n2}={eval(str(n1)+op+str(n2))}')

     

     6、可以同时遍历多个字典的数据

    1. done = {'name': 'Mike', 'last_name': 'Wei', 'job': 'Python'}
    2. dtwo = {'name': 'Sanse', 'last_name': 'Doe', 'job': 'Manager'}
    3. for (k1,v1),(k2,v2) in zip(done.items(),dtwo.items()):
    4. print(k1,v1)
    5. print(k2,v2)

     

    7、将两个列表中的数据构建成列表再进行排序 

    1. names = ['zhang', 'wang', 'li', 'yang']
    2. ages = [18,20, 22, 19]
    3. data = list(zip(names, ages))
    4. print(data)
    5. #根据字母升序排序
    6. data.sort()
    7. print(data)

    8、可以使用 sorted() 和 zip() 一起使用来进行升序排序:

    1. names = ['zhang', 'wang', 'li', 'yang']
    2. ages = [18,20, 22, 19]
    3. data = sorted(zip(names, ages))
    4. print(data)

     9、将两个列表中的数据构建成字典

    1. names = ['zhang', 'wang', 'li', 'yang']
    2. ages = [18,20, 22, 19]
    3. stu = dict(zip(names, ages))
    4. print(stu)

      

    10、利用 * 号操作符,可以将列表解压为元组。

    1. names = ['zhang', 'wang', 'li', 'yang']
    2. ages = [18,20, 22, 19]
    3. # 转换为列表
    4. print(list(zip(names,ages)))
    5. # 解压
    6. n,a=zip(*zip(names,ages))
    7. print(n)
    8. print(a)

     

     

     

     

  • 相关阅读:
    “华为杯”研究生数学建模竞赛2019年-【华为杯】A题:无线智能传播模型(附优秀论文及Pyhton代码实现)(续)
    JVM面试87题你真的都会了吗?
    如何使用 Terraform 和 Git 分支有效管理多环境?
    Mybatics-连接配置
    阅读Skeleton.css源码,改善睡眠质量(尽管它只有419行代码)
    [TOG2022]DCT-Net: Domain-Calibrated Translation for Portrait Stylization
    python PIL基本使用
    电脑重装系统后如何把网站设为首页
    Docker没有vim如何安装,apt-get update报ERR404解决方案
    ROS的程序编写流程
  • 原文地址:https://blog.csdn.net/hlx20080808/article/details/127847063