1. 程式人生 > >python的reduce,map,自拍、

python的reduce,map,自拍、

相加 res ble true filter map() 繼續 span 返回

一、 reduce(function,Iterable),它的形式和map()函數一樣。不過參數function必須有兩個參數

reduce()函數作用是:把結果繼續和序列的下一個元素做累積計算。

例,

>>>def add(x, y) : # 兩數相加
... return x + y
...
>>> reduce(add, [1,2,3,4,5]) # 計算列表和:1+2+3+4+5
15
>>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函數
15




二、 map(function,Iterable)

是將列表中的每一個元素作用於函數。

1.返回值:

Python 2.x 返回列表。

Python 3.x 返回叠代器。
所以python3中獲取map返回值的兩個基本方法:
①print(list(map(f,Iter))) #這裏的f代表函數,Iter代表可叠代對象。
②使用 for 循環。


例,
①m = map(lambda x : x + 1, [1, 2, 3])
print(list(m)) #結果為:[5, 7, 9]

②提供了兩個列表,對相同位置的列表數據進行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]




三、 zip
函數接受任意多個可叠代對象作為參數,將對象中對應的元素打包成一個tuple,然後返回一個可叠代的zip對象。
例,
lt1 = [‘a‘, ‘b‘, ‘c‘]
lt2 = [1, 2, 3]
lt3 = [‘A‘, ‘B‘, ‘C‘]
result = list(zip(lt1, lt2, lt3))
print(result) #輸出結果:[(‘a‘, 1, ‘A‘), (‘b‘, 2, ‘B‘), (‘c‘, 3, ‘C‘)]



四、 filter() 函數用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
filter接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。
語法:filter(function, Iterableble)


例,
func = lambda x : x % 2 == 1
print(list(filter(func, [1,2,3]))) #輸出結果:[1, 3]

python的reduce,map,自拍、