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