1. 程式人生 > >python之 《zip,lambda, map》

python之 《zip,lambda, map》

1.zip

  對於zip我們一般都是用在矩陣上

eg:

a = [1,2,3]
b = ['a', 'b', 'c']
x = zip(a, b)
print(x)
print(list(x))

結果是

<zip object at 0x000002150D755DC8>
[(1, 'a'), (2, 'b'), (3, 'c')]

可以看到我們是分別將第一個合併到一起

所以我們對列表切片一下來看一下效果

c = zip(a[:-1], a[1:])

那麼他對應的結果也是

c = zip(a[:-1], a[1:])

nums = ['flower','flow','flight'] for i in zip(*nums): print(i)

結果是:
('f', 'f', 'f') ('l', 'l', 'l') ('o', 'o', 'i') ('w', 'w', 'g')
*num就是反解的意思

2.lambda
我們舉個簡單的例子

g = lambda x: x+2
print(g(8))

那麼在這裡面呢我們可以看到lambda也是一個函式lambda對應的是一個比較簡單的函式:前面是我們要輸入的數字 後面是我們要做的一個簡單的計算

此時輸出的就是8 了

3.map

>>>def square(x) :            # 計算平方數
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5]) # 計算列表各個元素的平方 [1, 4, 9, 16, 25] >>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函式 [1, 4, 9, 16, 25] # 提供了兩個列表,對相同位置的列表資料進行相加 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19]

look this 他和lambda結合起來可以做更多的事情當然 也不一定是lambda也可以是其他的任意函式

來控制我們的輸入