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})

 

posted @ 2021-01-14 15:25  zhw_sylvia  阅读(344)  评论(0编辑  收藏  举报