Reduce() 與 lambda 函式
你在使用 lambda 函式方面愈來愈上手了!再來學一個實用的函式吧。reduce() 函式可用來對清單執行計算,而且和 map()、filter() 不同,會回傳單一數值作為結果。要使用 reduce(),你必須從 functools 模組匯入它。
還記得前幾個練習的 gibberish() 嗎?
# Define gibberish
def gibberish(*args):
"""Concatenate strings in *args together."""
hodgepodge = ''
for word in args:
hodgepodge += word
return hodgepodge
gibberish() 會把一個字串清單當作引數,並回傳單一結果:將所有字串串接起來。在這個練習中,你將使用 reduce() 搭配一個把字串串接在一起的 lambda 函式,來重現這個功能。
本練習屬於課程
Python 函式入門
練習說明
- 從
functools模組匯入reduce函式。 - 在
reduce()的呼叫中,傳入一個接收兩個字串引數item1和item2並將它們串接的 lambda 函式;同時傳入字串清單stark。將結果指定給result。reduce()的第一個引數應該是該 lambda 函式,第二個引數則是清單stark。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Import reduce from functools
# Create a list of strings: stark
stark = ['robb', 'sansa', 'arya', 'brandon', 'rickon']
# Use reduce() to apply a lambda function over stark: result
result = reduce(____, ____)
# Print the result
print(result)