zoukankan      html  css  js  c++  java
  • zip()用法

    zip() 函数用于将可迭代的对象作为参数,将对象中对应位置的元素打包成一个个元组,然后返回由这些元组组成的列表(py2)
    在 Python 3.x 中为了减少内存,zip() 返回的是一个迭代器。如需展示列表,需手动 list() 转换。
     
    a=[1,2,3]
    b=['A','B','C']
    zip_1 = zip(a,b)
    print(zip_1)  ##zip对象  <zip object at 0x00000147C9257AC8>
    print(list(zip_1))##输出列表  [(1, 'A'), (2, 'B'), (3, 'C')]
    c=['x','y','z']
    zip_2=zip(a,b,c)
    print(list(zip_2))#[(1, 'A', 'x'), (2, 'B', 'y'), (3, 'C', 'z')]
    # 当传递参数长度不一样时候,以短的为标准
    a=[1,2,3] c=['x','y'] zip_2=zip(a,c) print(list(zip_2)) #[(1, 'x'), (2, 'y')]
    # 与 zip 相反,zip(*) 可理解为解压,返回组成列表的一个个的元祖
    a=[1,2,3]
    b=['A','B','C']
    c=[4,5,6]
    zip_1 = zip(a,b,c)
    x,y,z=zip(*zip_1)
    print(x,y,z) #(1, 2, 3) ('A', 'B', 'C')(4, 5, 6)

    注意点:

    #由于zip返回的是一个迭代器,所以是惰性计算的,迭代器只能前进,不能后退
    a=[1,2,3]
    b=['A','B','C']
    zip_1 = zip(a,b)
    print(zip_1) 
    print(list(zip_1))  #[(1, 'A'), (2, 'B'), (3, 'C')]
    print(list(zip_1))  #[]空列表 ,迭代器的内部指针已经指向了内部的最后一个元组,
    # 然后到了下面执行列表生成式的时候,迭代器只能前进不能后退,所以指针没有被重置,可是迭代器已经没有元组可返回了,所以 打印出来的是 空list
    #简单理解就是只能用一次,下一次使用需要重新zip/zip(*)生成一个迭代器
    结合dict造测试数据,比如用户名和密码
    #结合dict造测试请求数据,
    user=['alan','jax','zz']
    pwd=['123','456','789']
    test_data=list(zip(user,pwd))
    print(test_data)  #输出用户名和密码组成的列表[('alan', '123'), ('jax', '456'), ('zz', '789')]
    test_data=dict(test_data)#可迭代对象方式来构造字典
    print(test_data)  #{'alan': '123', 'jax': '456', 'zz': '789'}
  • 相关阅读:
    jQuery选择器大全
    MVC自定义数据验证(两个时间的比较)
    SQLServer开发总结
    疯狂的订餐系统软件需求分析挑战之旅1
    疯狂的订餐系统软件需求分析挑战之旅2
    net中C#自动化调用Word的实例总结
    软件开发中代码自动化的一点浅见
    代码自动化(1)开篇
    代码自动化(2)程序设计
    Excel 手机号码、身份证 等信息 导入到SQL2005 中,转换成字符是自动变成 科学计数法 的解决方法
  • 原文地址:https://www.cnblogs.com/alantammm/p/11996216.html
Copyright © 2011-2022 走看看