enumerate() 函數python
對與一個可迭代的對象(如,列表,元組),enumerate將其組成一個索引序列,利用它能夠同時得到索引和值app
用法:
enumerate(x,y) y可不填,y表明起始索引值,默認爲0,可自行設置函數
若是對一個列表,既要遍歷索引又要遍歷元素時,首先能夠這樣:測試
list1 = ["這", "是", "一個", "測試"] for i in range (len(list1)): print (i ,list1[i]) ''' 0 這 1 是 2 一個 3 測試 '''
上述方法有些累贅,利用enumerate()會更加直接和優美:spa
list1 = ["這", "是", "一個", "測試"] for i in enumerate(list1): print (i) ''' (0, '這') (1, '是') (2, '一個') (3, '測試') '''
若是設置起始值,如1,則從1開始code
list1 = ["這", "是", "一個", "測試"] for i,j in enumerate(list1,1): print (i,j) ''' 1 這 2 是 3 一個 4 測試 '''
其餘寫法:注意這裏的 i[0] , i[1]orm
list1 = ["這", "是", "一個", "測試"] for i in enumerate(list1,1): print (i[0],i[1]) ''' 1 這 2 是 3 一個 4 測試 '''
format()函數對象
格式化字符串 和 %s 相似索引
s='i am {0},{1}' s.format('lee','die')
apply() 執行函數ip
def foo(x): print x apply(foo,x)
map(x,y)函數
x 爲1函數,y 爲1個序列
python 2.0: 對可迭代函數 'iterable' 中的每個元素應用 ‘function’ 方法,將結果做爲 list 返回。
python 3.0+: 返回的是1個 map 對象,若是想要返回 list ,則須要用 List() 函數轉換
def foo (arg): return arg+100 li=[11,12,13] print(map(foo,li)) temp=list(map(foo,li)) #python3.0+ 返回列表須要用List()函數轉換 print(temp) #也能夠用lambda 表達式 temp1=map(lambda x:x+100,li) print(list(temp1))
輸出結果:
<map object at 0x000000000113E7B8> [111, 112, 113] [111, 112, 113]
filter() 過濾函數
用法:
filter(條件函數,列表) 若是函數返回值爲 true 則保留,不然過濾掉
返回結果 :
li=[11,22,33] def foo2(arg): if arg <22: return True else: return False temp3=filter(foo2,li) print(temp3) print(list(temp3))
獲得結果:
<filter object at 0x00000000006F7048> [11]
zip()函數
zip([seql, ...])接受一系列可迭代對象做爲參數,將對象中對應的元素打包成一個個tuple(元組),而後返回由這些tuples組成的zip對象,python3.0通常加list()轉換成列表。若傳入參數的長度不等,則返回list的長度和參數中長度最短的對象相同。
a=[1,2,3] b=[2,3,4] c=[7,8,9] print(list(zip(a,b,c))) #輸出結果:[(1, 2, 7), (2, 3, 8), (3, 4, 9)] X=[1,2] C=['A','B',3,4] L1=zip(x,c) print(list(l1)) #輸出結果 [(1, 'A'), (2, 'B')]
eval()函數
將字符串str當成有效的表達式來求值並返回計算結果。