python之 《zip,lambda, map》
阿新 • • 發佈:2018-12-28
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也可以是其他的任意函式
來控制我們的輸入