1. 程式人生 > >Python中的enumerate函式和lambda表示式

Python中的enumerate函式和lambda表示式

Python中的enumerate函式和lambda表示式

Python enumerate()函式

功能:enumerate() 函式用於將一個可遍歷的資料物件(如列表、元組或字串)組合為一個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。

語法

enumerate(sequence, [start=0])
  • sequence – 一個序列、迭代器或其他支援迭代物件。
  • start – 下標起始位置。
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate
(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] list(enumerate(seasons, start=1)) # 下標從 1 開始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] #for迴圈中使用 seq = ['one', 'two', 'three'] for i, element in enumerate(seq): print(i,element) 0 one 1 two 2 three

lambda表示式

功能:lambda是一個表示式,起到函式速寫的功能

特性:

  • lambda函式是匿名的:所謂匿名函式,通俗地說就是沒有名字的函式。lambda函式沒有名字。

  • lambda函式有輸入和輸出:輸入是傳入到引數列表argument_list的值,輸出是根據表示式expression計算得到的值。

  • lambda函式一般功能簡單:單行expression決定了lambda函式不可能完成複雜的邏輯,只能完成非常簡單的功能。由於其實現的功能一目瞭然,甚至不需要專門的名字來說明。

lambda x, y: xy;函式輸入是x和y,輸出是它們的積xy

lambda *args: sum(args); 輸入是任意個數的引數,輸出是它們的和(隱性要求是輸入引數必須能夠進行加法運算)

典型應用:

filter函式:此時lambda函式用於指定過濾列表元素的條件。例如filter(lambda x: x % 3 == 0, [1, 2, 3])指定將列表[1,2,3]中能夠被3整除的元素過濾出來,其結果是[3]。

sorted函式:此時lambda函式用於指定對列表中所有元素進行排序的準則。例如sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))將列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素與5距離從小到大進行排序,其結果是[5, 4, 6, 3, 7, 2, 8, 1, 9]。

​ **map函式:**此時lambda函式用於指定對列表中每一個元素的共同操作。例如map(lambda x: x+1, [1, 2,3])將列表[1, 2, 3]中的元素分別加1,其結果[2, 3, 4]。

reduce函式:此時lambda函式用於指定列表中兩兩相鄰元素的結合條件。例如reduce(lambda a, b: ‘{}, {}’.format(a, b), [1, 2, 3, 4, 5, 6, 7, 8, 9])將列表 [1, 2, 3, 4, 5, 6, 7, 8, 9]中的元素從左往右兩兩以逗號分隔的字元的形式依次結合起來,其結果是’1, 2, 3, 4, 5, 6, 7, 8, 9’。

參考:

http://www.runoob.com/python/python-func-enumerate.html

https://blog.csdn.net/zjuxsl/article/details/79437563