关于python中enumerate和zip函数的用法及举例
2016-03-03 20:54 dream_er 阅读(1795) 评论(0) 编辑 收藏 举报关于python中enumerate和zip函数的用法及举例
关于enumerate函数:
enumerate函数可以同时返回列表或元组等可迭代对象的下标和内容,但实际上,enumerate函数实际返回的是一个enumerate类型的可迭代对象,下面是用法举例:
seq=[1,2,'3','hello world'] #传统方法迭代seq i=0 for element in seq: print seq[i] i+=1 #使用enumerate函数迭代seq for i,element in enumerate(seq): print i,element print type(enumerate(seq))结果是:
1 2 3 hello world 0 1 1 2 2 3 3 hello world <type 'enumerate'>
关于zip函数:
其实,zip函数是一个非常有趣的函数,我们大家都知道zip是一个压缩软件的名字,而python里面的zip函数确实有压缩功能。zip函数可以接受一系列的可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后由这些tuple(元组)组成一个list(列表),故其返回值为list(列表),而如果传入的可迭代对象的长度不一致,则返回可迭代对象中最短的一个对象的长度,而其,通过zip(*list)可以将原打包的可迭代对向分开,详细见下面例子:
a=[1,2,3,4,5] b=['a','b','c','d'] c=zip(a) print type(c) print c c=zip(a,b) print c #在zip函数的括号里面加上*号,则是zip函数的逆操作 d=zip(*c) print d输出结果为:
<type 'list'> [(1,), (2,), (3,), (4,), (5,)] [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')] [(1, 2, 3, 4), ('a', 'b', 'c', 'd')]