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)
pythpn的zip函数的更多相关文章
- zip函数-Python 3
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表. zip函数在获取数据后,生成字典(dict)时比较好用. for examples: # Code based on P ...
- Python: zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表. 参考链接解释
- python(29)强大的zip函数
zip函数:它是python的内建函数,(与序列有关的内建函数有:sorted().reversed().enumerate().zip()),其中sorted()和zip()返回一个序列(列表)对象 ...
- zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个包含元组的列表. x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) ...
- 【python】zip()函数
来源:http://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tupl ...
- python中zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表.(在海豚实习时自己写了一个要用到zip的函数,那个例子非常代表性) 示例1 for i,j in zip(range(3) ...
- python中使用zip函数出现<zip object at 0x02A9E418>
在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...
- python中的 zip函数详解
python中zip()函数用法举例 定义:zip([iterable, ...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple ...
- Python中zip()函数用法
定义:zip([iterable, …])zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的l ...
随机推荐
- C#实现的根据日期得到今天是星期几
算法如下: 基姆拉尔森计算公式: W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数.注意:在公式中有 ...
- 转: Your build settings specify a provisioning profile with the UUID, no provisioning profile was found
http://blog.csdn.net/rbyyyblog/article/details/12220875 在Archive项目时,出现了“Your build settings specify ...
- unity, Invoke延迟执行
参考:http://blog.christianhenschel.com/2013/05/15/how-to-do-delayed-function-calls-in-unity3d-one-line ...
- Failed to add reference to 'System.Net.Http'. Please make sure that it is in the Global Assembly Cache.
关闭VS再来就好了
- MII_GMII_RGMII_RMII_SMII_SSMII_TBI_RTBI
简介 MII是英文Medium Independent Interface的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间,MII接口的类型有很多,常用的有 ...
- Redis命令学习-string类型操作
APPEND key value 假设key已经存在,而且为字符串.那么这个命令会把value追加到原来值的末尾.假设key不存在.首先创建一个空字符串,再运行追加操作. 返回值:返回 ...
- 【转载】表单验证<AngularJs>
原文地址:http://www.cnblogs.com/rohelm/archive/2014/10/19/4033513.html 常用的表单验证指令 1. 必填项验证 某个表单输入是否已填写,只要 ...
- android studio- java注释自己动手弄起来
今天写段子...程序段子.突然觉得AS默认的注释太简洁,不适合自己.于是,自己琢磨半天,大概知道了途径.结果,好好的一个coding之夜也无疾而终了...明天继续跟着包工头学搬砖. 注释设置途径: 1 ...
- c++ 请抛弃匈牙利命名法 - 变量命名代码风格的建议。
我只针对c++码农们讲,其他语言不了解不过应该大同小异.曾几何时翻开21天学通c++系列等脑残入门书,都以匈牙利命名法示人(DWORD dwXXX, int nXXX, string strXXX). ...
- Anaconda+Tensorflow环境安装与配置(转载)
Anaconda+Tensorflow环境安装与配置 转载请注明出处:http://www.cnblogs.com/willnote/p/6746499.html Anaconda安装 在清华大学 T ...