關于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
關于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
輸出結果為:
[(1,), (2,), (3,), (4,), (5,)]
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
[(1, 2, 3, 4), ('a', 'b', 'c', 'd')]