เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

reduce() และ lambda functions

ตอนนี้คุณเชี่ยวชาญการใช้ lambda functions มากขึ้นแล้ว มาทำความรู้จักกับอีกหนึ่งฟังก์ชันที่มีประโยชน์กัน ฟังก์ชัน reduce() เหมาะสำหรับการประมวลผลข้อมูลในลิสต์ และต่างจาก map() กับ filter() ตรงที่คืนค่าเพียงค่าเดียว ในการใช้ reduce() ต้อง import มาจากโมดูล functools ก่อน

จำ gibberish() จากแบบฝึกหัดก่อนหน้าได้ไหม?

# Define gibberish
def gibberish(*args):
    """Concatenate strings in *args together."""
    hodgepodge = ''
    for word in args:
        hodgepodge += word
    return hodgepodge

gibberish() รับลิสต์ของสตริงเป็น argument แล้วคืนค่าเป็นสตริงที่เชื่อมทุกตัวเข้าด้วยกันเป็นค่าเดียว ในแบบฝึกหัดนี้ จะนำฟังก์ชันการทำงานแบบเดียวกันนี้มาสร้างใหม่โดยใช้ reduce() ร่วมกับ lambda function สำหรับเชื่อมสตริง

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python เบื้องต้น: การเขียนฟังก์ชัน

ดูคอร์ส

คำแนะนำการฝึกหัด

  • Import ฟังก์ชัน reduce จากโมดูล functools
  • ในการเรียกใช้ reduce() ให้ส่ง lambda function ที่รับ argument สตริงสองตัวคือ item1 และ item2 แล้วเชื่อมเข้าด้วยกัน พร้อมส่งลิสต์ของสตริง stark เข้าไปด้วย จากนั้นกำหนดผลลัพธ์ให้กับตัวแปร result โดย argument แรกของ reduce() คือ lambda function และ argument ที่สองคือลิสต์ 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)
แก้ไขและรันโค้ด