Python3基礎之(二十 九)zip lambda map
阿新 • • 發佈:2018-11-19
一、zip
zip
函式接受任意多個(包括0個和1個)序列作為引數,合併後返回一個tuple
列表,請看示例:
a=[1,2,3]
b=[4,5,6]
ab=zip(a,b)
print(list(ab))#需要加list來視覺化這個功能
輸出:
[(1, 4), (2, 5), (3, 6)]
zip 中的運算
a=[1,2,3]
b=[4,5,6]
ab=zip(a,b)
for i,j in zip(a,b):
print(i/2,j*2)
輸出:
0.5 8
1.0 10
1.5 12
二、lambda
lambda定義一個簡單的函式,實現簡化程式碼的功能,類似於c/c++
#define SQR (x) x * x
。看程式碼會更好理解。
fun = lambda x,y : x+y
, 冒號前的x
,y
為自變數,冒號後x+y
為具體運算。
func=lambda x,y:x+y
x=int(input('x='))
y=int(input('y='))
print(func(x,y))
輸入x``y
的值後輸出x+y
x=2
y=4
6
三、map
map()
是Python
內建的高階函式,它接收一個函式f
和一個 list
,並通過把函式 f
依次作用在list
的每個元素上,得到一個新的 list
並返回。,看下面的程式:
def mult(x):
return x*x
print(list(map(mult,[1,2,3,4,5,6,7,8,9])))
輸出結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
注意:map()
函式不改變原有的list
,而是返回一個新的list
。
利用map()
函式,可以把一個list
轉換為另一個list
,只需要傳入轉換函式。
由於list
包含的元素可以是任何型別,因此,map()
不僅僅可以處理只包含數值的 list
,事實上它可以處理包含任意型別的 list
,只要傳入的函式f
可以處理這種資料型別。