6. ฟังก์ชั่นภายในของ Python ที่น่าสนใจ

ครั้งนี้จะขอกล่าวถึง ฟังก์ชั่นภายใน ของ Python ที่น่าจะเป็นประโยชน์ 

ฟังก์ชัน map() เป็นฟังก์ชันที่มีลำดับสูงกว่า ฟังก์ชันนี้ยอมรับฟังก์ชันอื่นและลำดับของข้อมูลที่ทำซ้ำได้ (iterables) เป็นพารามิเตอร์ และผลลัพธ์หลังจากใช้ฟังก์ชันนี้กับแต่ละข้อมูลที่ทำซ้ำได้ในลำดับ มีรูปแบบคำสั่ง ดังนี้:

รูปแบบคำสั่ง: map(function,iterables)

ฟังก์ชันนี้ใช้เพื่อกำหนดนิพจน์ซึ่งจะนำไปใช้กับข้อมูลที่ทำซ้ำได้ ฟังก์ชันที่ผู้ใช้กำหนดเองและฟังก์ชัน lambda  สามารถส่งไปยังฟังก์ชัน map ได้

ฟังก์ชันที่ผู้ใช้กำหนด สามารถส่งไปยังเมธอด map() ผู้ใช้เพียงคนเดียว ที่สามารถเปลี่ยนพารามิเตอร์ ของฟังก์ชันเหล่านี้ได้

ตัวอย่างที่ 1

def myfunc(a):
    return len(a)

x = map(myfunc, ('apple', 'banana', 'cherry'))

# convert map into list

print(list(x))


ผลลัพธ์ที่ได้ คือ [5, 6, 6]

*********************************

ตัวอย่างที่ 2

def myfunc(a, b):
    return a +'-'+ b

x = map(myfunc, ('apple', 'banana', 'cherry'), ('orange', 'lemon', 'pineapple'))

#convert the map into a list, for readability:

print(list(x))

ผลลัพธ์ที่ได้ คือ ['apple-orange', 'banana-lemon', 'cherry-pineapple']


ฟังก์ชัน filter() ใช้เพื่อสร้างรายการผลลัพธ์ของค่าที่คืนค่าเป็น true เมื่อมีการเรียกใช้ฟังก์ชัน มีไวยากรณ์ต่อไปนี้:

รูปแบบคำสั่ง: filter(myFunc, ages)

ฟังก์ชันนี้เช่น map() สามารถใช้ฟังก์ชันที่ผู้ใช้กำหนดและฟังก์ชันแลมบ์ดาเป็นพารามิเตอร์ได้

ตัวอย่างที่ 1

ages = [5, 12, 17, 18, 24, 32]

def myFunc(x):
    if x < 18:
        return False
   else:
    return True

adults = filter(myFunc, ages)

for x in adults:

  print(x)

ผลลัพธ์ที่ได้ คือ 

18
24
32


ฟังก์ชัน reduce() จะใช้ฟังก์ชันที่ให้มากับข้อมูลที่ทำซ้ำได้และส่งกลับค่าเดียวตามความหมายของชื่อ

รูปแบบคำสั่ง: reduce(function, iterables)

ฟังก์ชันระบุว่าควรใช้นิพจน์ใดกับข้อมูลที่ทำซ้ำได้ ในกรณีนี้ ต้องใช้โมดูลเครื่องมือฟังก์ชันเพื่อนำเข้าฟังก์ชันนี้

ตัวอย่าง

reduce(lambda a,b: a+b,[23,21,45,98])

ผลลัพธ์ที่ได้ คือ

187

ซึ่งเป็นผลจากการนำ 23 + 21 ได้ผลแล้ว นำไปบวกกับ 45 ได้ผลแล้ว นำไปบวกกับ 98


โพสต์ยอดนิยมจากบล็อกนี้

14. Wio Terminal EP.01 , เริ่มตันกับ Wio Terminal ด้วย circuitPython

28. Wio Terminal GPS

24. Wio Terminal EP.11, อนาล็อกมิเตอร์ วัดความสว่างของแสง