python zip()
函数用于将多个可迭代对象中对应的元素打包成一个元组, 然后返回由这些元组组成的列表,如果各个迭代器的元素个数不一致, 则返回列表长度是最短的对象的那个长度。它是python的内置函数。
说的什么意思呢?就是打包多个可迭代对象组合成一个新的元组,具体看下面的示例。
语法
语法如下:zip(iterable, ...)
参数
- iterable:可迭代的对象
返回值
python2.x 返回元组组成的list列表
python3.x 返回zip object迭代器,需要转换一下看输出效果,具体看下面的例子
程序示例
介绍相关例子了解该函数的使用方法。
例1
列表和列表合并
#!/usr/bin/python
# coding=utf-8
# 列表和列表组合
lst1 = [1,2,3]
lst2 = ['a','b','c','d']
lst = list(zip(lst1, lst2)) #长度不一致以lst1为准,因为它的长度小
print(lst)
程序运行结果:
[(1, 'a'), (2, 'b'), (3, 'c')]
上面的例子中,list1和list2的长度不一致以lst1为准,因为它的长度小,返回结果我们需要list()函数转换一下才能看到友好的输出效果。
例2
列表和元组合并
#!/usr/bin/python
# coding=utf-8
# 列表和列表组合
lst1 = [1,2,3]
tu1 = ('taobao','yxjc123','baidu')
lst = list(zip(lst1, tu1)) #列表和元组合并
print(lst)
程序运行结果:
[(1, 'taobao'), (2, 'yxjc123'), (3, 'baidu')]
例3
列表和字典合并
元组和字典合并
#!/usr/bin/python
# coding=utf-8
lst1 = [1,2,3]
tu1 = (1,2,3)
dic1 = {'one': '111', 'two': '222', 'three': '333'}
lst = list(zip(lst1, dic1)) #列表和字典合并
lst2 = list(zip(tu1, dic1)) #元组和字典合并
print('列表和字典:', lst)
print('元组和字典合并:', lst2)
程序运行结果:
列表和字典: [(1, 'one'), (2, 'two'), (3, 'three')]
元组和字典合并: [(1, 'one'), (2, 'two'), (3, 'three')]
元组和字典合并: [(1, 'one'), (2, 'two'), (3, 'three')]
我们看到列表和字典合并、元组和字典合并结果一样;字典合并提取了字典的key值。