python是支援多種范型的語言,可以進行所謂函式式程式設計,其突出體現在有這麼幾個函式:
filter、map、reduce、lambda、yield
>>> g = lambda x,y:x+y #x+y,並返回結果
>>> g(3,4)
7>>> (lambda x:x**2)(4) #返回4的平方
16
lambda函式的使用方法:
冒號後面是表示式,表示式計算結果就是本函式的返回值
比如,要列印乙個list,裡面依次是某個數字的1次方,二次方,三次方,四次方。用lambda可以這樣做:
>>> lamb = [ lambda x:x,lambda x:x**2,lambda x:x**3,lambda x:x**4 ]
>>> for i in lamb:
... print i(3),
...
3 9 27 81
map()
是python
的乙個內建函式,它的基本樣式是:
map(func,seq)
func是乙個函式,seq是乙個序列物件。在執行的時候,序列物件中的每個元素,按照從左到右的順序,依次被取出來,並放入到func那個函式裡面,並將func的返回值依次存到乙個list中。如
>>> items = [1,2,3,4,5]
>>> squared =
>>> for i in items:
...
>>> squared
[1, 4, 9, 16, 25]
>>> def sqr(x): return x**2
...
>>> map(sqr,items)
[1, 4, 9, 16, 25]
>>> map(lambda x: x**2, items)
[1, 4, 9, 16, 25]
>>> [ x**2 for x in items ] #這個我最喜歡了,一般情況下速度足夠快,而且可讀性強
[1, 4, 9, 16, 25]
要點:
繼續下面兩個例子:
>>> lst1 = [1,2,3,4,5]
>>> lst2 = [6,7,8,9,0]
>>> map(lambda x,y: x+y, lst1,lst2) #將兩個列表中的對應項加起來,並返回乙個結果列表
[7, 9, 11, 13, 5]
>>> lst1 = [1,2,3,4,5]
>>> lst2 = [6,7,8,9,0]
>>> lst3 = [7,8,9,2,1]
>>> map(lambda x,y,z: x+y+z, lst1,lst2,lst3)
[14, 17, 20, 15, 6]
可以看到map函式的強大和簡潔。如果使用for迴圈將會很繁瑣
直接看例子:
>>> reduce(lambda x,y: x+y,[1,2,3,4,5])
15
reduce函式的計算方式是將列表中的元素累加,((((1+2)+3)+4)+5)=15
與map函式相比較就可以看出兩者之間的區別。map是上下運算,reduce是橫著逐個元素進行運算。
reduce含可以接受第三個值作為初始值:例如
>>> reduce(lambda x,y: x+y,[1,2,3,4,5],100)
115
上述列表中計算將以100為初始值執行累加計算,先計算 100+1
filter的中文含義是「過濾器」,在python中,它就是起到了過濾器的作用.通過下面**體會:
>>> numbers = range(-5,5)
>>> numbers
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
>>> filter(lambda x: x>0, numbers)
[1, 2, 3, 4]
>>> [x for x in numbers if x>0] #與上面那句等效
[1, 2, 3, 4]
>>> filter(lambda x: x > 3, [1,2,3,4,5])
[4,5]
拜讀下filter的官方文件解釋:
filter(...)
filter(function or none, sequence) -> list, tuple, or string
return those items of sequence for which function(item) is true. if
function is none, return the items that are true. if sequence is a tuple
or string, return the same type, else return a list.
python初步學習
在這裡插入描述 idle python整合開發環境,也稱互動模式,具備基本的ide功能,是非商業python開發不錯選擇 python3.7是python的命令控制台,視窗和windows下的命令視窗一樣,不過只能執行python命令 python3.7manuals是純英文的幫助文件 module...
Python程式設計學習初步
python控制語句 1 選擇語句 if 最簡單的二選一,if後跟布林表示式,為true,執行true下的語句,為fail,執行fail下的語句 if booleanexpression suite of python statement rest of the python program 基本的...
Python初步學習(一)
參考該課程 1 win r cmd python 回車,進入python直譯器 1 使用print 函式輸出字串,進行簡單計算 使用input 函式,獲取使用者輸入 2 python中的基本資料型別 整形 int 浮點型 float 布林型 boolean 字串 str,單引號,雙引號,三單引號,轉...