python zip的使用方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/selfimpro_001/article/details/90486478

强大的zip

一. zip()简介

  • zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同。
  • * 操作与zip()相反,相当于把元组拆分成一个个列表。

二. zip()语法

zip(iterable1, iterable2, …)

iterable1, iterable2,…都是可迭代对象,包括:字符串、列表、元祖、字典。

三. 案例分析

In [1]: id = ['1', '2', '3', '4']
In [2]: name = ['zhangsan', 'lisi', 'wangwu', 'xiaohua']
In [3]: weight = ['165', '140', '130', '110']
In [4]: zipped = zip(a,b)
In [5]: zipped = zip(id, name)
In [6]: print(zipped)
"""
<zip object at 0x000001C906467A88>  # 得到的是一个对象
"""
In [7]: print(list(zipped))    # list()方法可转换为列表
"""
[('1', 'zhangsan'), ('2', 'lisi'), ('3', 'wangwu'), ('4', 'xiaohua')]
"""

In [8]: list(zip(id, name, weight))  #  可同时对三个或者多个对象使用zip()
"""
[('1', 'zhangsan', '165'),
 ('2', 'lisi', '140'),
 ('3', 'wangwu', '130'),
 ('4', 'xiaohua', '110')]
"""
``In [9]: list(zip(*zipped))   # 把zip后的结果分开
"""
Out[10]: [('1', '2', '3', '4'), ('zhangsan', 'lisi', 'wangwu', 'xiaohua')]
"""

In [11]: test1 = [1, 2, 3, 4, 5]
In [12]: test2 = [6, 7, 8]
In [13]: list(zip(test1, test2))  # 对于长度不一样的,选取较短的长度为标准
“”“
Out[14]: [(1, 6), (2, 7), (3, 8)]
”“”

## 对于字典,zip()之后,字典的key组合到一个元祖中
dict1 = {'1': 'zhangsan', '2': 'lisi', '3': 'wangwu'}
dict2 = {'one': '110', 'two': '140', 'three': '90'}
dict1_and_dict2 = zip(dict1, dict2)
print(list(dict1_and_dict2))
“”“
[('1', 'one'), ('2', 'two'), ('3', 'three')]
”“”
list(zip(*zip(dict1, dict2)))
"""
[('1', '2', '3'), ('one', 'two', 'three')]
"""

猜你喜欢

转载自blog.csdn.net/selfimpro_001/article/details/90486478