map(function, sequence[, sequence, ...])
根據提供的函式對指定序列做對映
#函式需要乙個引數
m = map(lambda x: x*x, [1, 2, 3])
print(m,'\n')#結果為:[1, 4, 9]
print(list(m),'\n')#結果為:[1, 4, 9]
#函式需要兩個引數
m = map(lambda x, y: x+y, [1, 2, 3], [4, 5, 6])
print(list(m),'\n')#結果為:[5, 7, 9]
def f1( x, y ):
return (x,y)
l1 = [ 0, 1, 2, 3, 4, 5, 6 ]
l2 = [ 'sun', 'm', 't', 'w', 't', 'f', 's' ]
l3 = map( f1, l1, l2 )
print(list(l3)) #結果為:[(0, 'sun'), (1, 'm'), (2, 't'), (3, 'w'), (4, 't'), (5, 'f『),(6, 's』)]
reduce(function, sequence[, initial])對引數序列中元素進行累積#在python 3裡,reduce()函式已經被從全域性名字空間裡移除了,它現在被放置在functools模組裡
#reduce返回的是乙個非iterator的iterable,所以直接列印輸出
from functools import reduce
r = reduce(lambda x, y: x+y, [1,2,3,4]) #10
print(r,'\n')
r = reduce(lambda x, y: x+y, [1,2,3,4],5) #15
print(r,'\n')
r = reduce(lambda x, y: x+y, ['aa', 'bb', 'cc'], 'dd') #'ddaabbcc'
print(r,'\n')
filter(function or none, sequence)對指定序列執行過濾操作f = filter(lambda x: x%2, [1, 2, 3, 4])
print(list(f),'\n')
f = filter(none, "hello")
print(list(f),'\n')
sorted
匿名函式
f = lambda x: x*x
print(f,'\n')
print(f(2),f(4),'\n')
def fn(x,y):
return (lambda x,y: x*x+y*y)
f2 = fn(3,4) #只是返回乙個函式
print(f2,'\n', f2(3,4),'\n') #f2(3,4)才是呼叫了函式
#得到[1,20)的所有奇數
l = list(filter((lambda x: x%2==1), range(1,20)))
print(l,'\n')
24 高階特性之內置方法(5)
functools 是python2.5被引入的,一些工具函式放在此包 import functools print dir functools 偏函式 partiialfunction 把原函式的某些引數設為預設引數,返回乙個新函式名,以簡化函式呼叫的形式 引入背景 import functool...
21 高階屬性之內置方法(2)
map map f,i 等價於對i的每個元素i i 都執行f,然後再把所有f i i 拼接成乙個iterator並返回 map傳入函式和乙個iterable 乙個序列 返回乙個iterator 注意到iterator是惰性序列,只有被呼叫才能被獲取,要通過諸如list,for等等 迭代出來 def ...
python之內置高階函式
把函式作為引數傳入,這樣的函式稱為高階函式,函式式程式設計就是指這種高度抽象 的程式設計正規化。我們具體用兩個小案例來說明map 接收使用者輸入3個字串數字 依次將接收的三個數轉換為整形 對於序列每個元素求絕對值 nums input 請輸入 split int nums list map int,...