• zip


    zip函数的原型为:zip([iterable, …])

      zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。也就是说,该函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的列表。没有参数时,它返回一个空的列表。利用*号操作符,可以将list unzip(解压).

    • 把两个列表转化为一个列表,以元组为元素
    seq = ['one', 'two', 'three']
    seq1=[1,2,3]
    seq3=[4,5,6]
    
    list(zip(seq,seq1))
    
    out:
    [('one', 1), ('two', 2), ('three', 3)]
    • 把两个列表转化为一个字典
    dict(zip(seq,seq1))
    
    out:
    {'one': 1, 'three': 3, 'two': 2}
    • 还可以这样转化,每个列表为一个元素
    zz=zip(seq,seq1)
    list(zip(*zz))
    
    out:
    [('one', 'two', 'three'), (1, 2, 3)]
    • 还可以数据处理成需要的格式
    res1=['袍江站', '袍江中学', '树下王站', '钟楼站(*)', '运管所站(*)', '绍兴中专', '柯桥妇保', '湖塘中学(*)', '柯桥区政府', '杨树畈(*)', '嵊州市环保大楼(*)', '丽湖小区(*)', '上虞中学', '城东站(*)', '城南站(*)', '上虞市环保局(*)', '城东开发委', '重华小学']
    aqi =['166', '90', '90', '82', '84', '82', '76', '72', '68', '65', '66', '65', '61', '61', '51', '51', '84', '54']
    pm2_5=['0.90', '0.20', '0.70', '0.70', '0.60', '0.60', '0.50', '0.30', '0.40', '0.40', '0.50', '0.50', '0.50', '3.00', '0.70', '0.80', '0.00', '0.70']
    for res,aqi_num,pm2_5_num in zip(res1,aqi,pm2_5):
        print({"name":res,"aqi":aqi_num,"pm2_5":pm2_5_num})
  • 相关阅读:
    [转]趣题:一个n位数平均有多少个单调区间?---- From Matrix67
    2015编程之美复赛
    Codeforces Round #304 (Div. 2)
    HDU 5226
    HDU 5225
    HDU 3666
    HDU 4598
    Codeforces Round #303 (Div. 2) E
    编程之美初赛第二场AB
    2015 编程之美初赛第一场 AC题
  • 原文地址:https://www.cnblogs.com/zhenghuiwen/p/14277472.html
Copyright © 2020-2023  润新知