pythpn的zip函数

zip可接受多个序列作为参数,返回一个tuple列表。

例1:没有参数


>>> b = zip()

>>> print b

[]

例2:一个参数


>>> a = (1,2,3)

>>> b = zip(a)

>>> print b

[(1,), (2,), (3,)]

例3:序列长度不同


>>> a = (1,2,3)

>>> c = (4,5,6,7)

>>> b = zip(a,c)

>>> print b

[(1, 4), (2, 5), (3, 6)]

例4: zip的多个序列操作


>>> a = (1,2,3)

>>> c = (4,5,6)

>>> d = (7,8,9)

>>> b = zip(a,c,d)

>>> print b

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

例5:


>>> x = (1,2,3)

>>> y = (4,5,6)

>>> z = (7,8,9)

>>> a = zip(x,y,z)

>>> b = zip(*a)

>>> print b

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

没有*号的结果如下:

>>> b = zip(a)

>>> print b

[((1, 4, 7),), ((2, 5, 8),), ((3, 6, 9),)

一般认为这是一个unzip的过程,它的运行机制是这样的:

在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))

所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)

例6:


>>> x = (1,2,3)

>>> a = zip(*[x]*3)

>>> print a

[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

它的运行机制是这样的:

[x]生成一个列表的列表,它只有一个元素x

[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]

zip(* [x] * 3)的意思就明确了,zip(x, x, x)

时间: 2024-10-16 11:45:45

pythpn的zip函数的相关文章

zip函数-Python 3

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表. zip函数在获取数据后,生成字典(dict)时比较好用. for examples: 1 # Code based on Python 3.x 2 # _*_ coding: utf-8 _*_ 3 # __Author: "LEMON" 4 5 pList = [('li', 'LY', 80), ('zeng', 'ZW', 90), ('dudu', 'LR', 98)] 6 names = [] 7

20170419 zip函数

一.定义: zip([iterable, ...])zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表).若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同.利用*号操作符,可以将list unzip(解压). 二.用法示例: 读者看看下面的例子,对zip()函数的基本用法就可以明白了: 1 2 3 4 5 6 7 8 9 >>> a = [1,2,3

python(29)强大的zip函数

zip函数:它是python的内建函数,(与序列有关的内建函数有:sorted().reversed().enumerate().zip()),其中sorted()和zip()返回一个序列(列表)对象,reversed().enumerate()返回一个迭代器(类似序列) 代码一: >>> name = ("lilei","lihua","zhang") >>> age = ("21",&q

关于python3.4版本中的zip函数

特别注意: 在window,显示变量 print(x);而在linux中 print x 例如,有两个列表: >>>a = [1,2,3] >>>b = [4,5,6] 使用zip()函数来可以把列表合并,并创建一个元组对的列表. >>>zip(a,b) [(1, 4), (2, 5), (3, 6)] #注意在Python3.4版本中,显示 >>> zip(a,b)<zip object at 0x01FB2E90> 如

python zip函数

zip函数将名/值列表链接到一起 In [1]: names = ['name', 'age', 'pay', 'job'] In [2]: values = ['Sue Jones', 45, 40000, 'hdw'] In [3]: a = zip(names, values) In [4]: a Out[4]: [('name', 'Sue Jones'), ('age', 45), ('pay', 40000), ('job', 'hdw')]

【python】zip()函数

来源:http://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表.具体意思不好用文字来表述,直接看示例: 1.示例1: x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) print xyz 运行的结果是: [(1, 4, 7), (2, 5, 8), (3, 6, 9)] 从这个结果可

Python 中zip()函数的用法

1. 定义: zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表). 若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同.利用*号操作符,可以将list unzip(解压). 2. 常见用法: A. 使用zip()函数来可以把列表合并,并创建一个元组对的列表 需要注意的是:在python 3.0中zip()是可迭代对象,使用时必须将其包含在一个list中,方便

python之zip函数和sorted函数

# zip()函数和sorted()函数 # zip()函数:将两个序列合并,返回zip对象,可强制转换为列表或字典 # sorted()函数:对序列进行排序,返回一个排序后的新列表,原数据不改变 # 合并两个列表,以列表类型输出 list_str = ['a', 'b', 'c', 'd'] list_num = [1, 2, 3, 4] list_new = zip(list_str, list_num) print("zip结果(列表):", list(list_new)) #

Effective Python 小笔记之 zip 函数

环境:Python 3.5.1 CentOS 7 zip函数可以同时遍历两个迭代器. 在编写Python代码时,通常要面对很多列表,而这些列表中的对象,可能是相互关联的.如下例:     names = ['Cecilia', 'Lily', 'Maria']     length = [len(word) for word in names] 对于上例中的源列表和派生列表,相同索引处有关联关系,以此再引申出一个例子:     longest_name = None     max_length