開始使用免費開始

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() 的呼叫中,傳入一個接收兩個字串引數 item1item2 並將它們串接的 lambda 函式;同時傳入字串清單 stark。將結果指定給 resultreduce() 的第一個引數應該是該 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)
編輯並執行程式碼