python 中有幾個比較酷炫的操作,比如:zip、lambda、map
一、zip操作
zip字面意思:拉鍊。這麼來記,把幾個東西扔到一個包裏,拉上拉鍊,就算打包好了。通俗點講,就是把第1個參數、與第2個參數... 到第N個元素,按位置1個個對齊,打包輸出一系列元組(turple).
1 2 3 4 5 6 7 8 9 10 |
|
輸出:
1 2 |
|
注意第2行的輸出,這個類似木桶原理,元素個數最少的,決定最後輸出元素的個數,x裏有[4,5,6]3個元素,而y裏有['d','e']2個元素,最終結果裏就只有2個turple。另外zip的結果是一個對象,要查看的話,得轉化成list對象,這樣才能友好的輸出。
二、lambda
python裏的lambda與c#、java不同,主要用於將一些邏輯簡單的代碼,寫得更簡潔(當然:是否更簡潔,這個有爭議,python裏的 ... for ... in ... if ... 本身就很靈活,已經可以做到代碼風格非常簡潔)
1 2 3 4 5 6 7 8 9 10 11 |
|
結果都是輸出3
三、map操作
python時的map,完全不同於java中的map容器,它實際上有點類似於c#中的委託,可以把function函數本身當成一個參數。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
輸出:
1 2 |
|
解釋一下:第一次是把[1,2]與[6,7]作用於add1函數,相當於[1+6,2+7],每個元數按位相加,第二次則是[3]與[4]相加。可能有同學會想,如果二個相加的列表,元素個數不對等,比如
map_result = map(add1, [1, 2], [6, 7, 8])
這樣呢?答案仍然是木桶原理,大家可以自己去驗證。
作者:菩提樹下的楊過
出處:http://yjmyzz.cnblogs.com
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。