Def กับ Lambda มันคืออะไร ?

TodeDunkPod
2 min readJul 23, 2022

บลอคนี้จะเขียนไปเรื่อย เนื้อหาที่จะเขียนมันก็จะไม่เรียง มั่วๆ หน่อยนะครับ 555 แล้วแต่ว่าผู้เขียนช่วงนั้นๆ ทำอะไร 5555 🥱

เนื่องจากช่วงนี้ทำงานเกี่ยวกับเขียน code บ่อย ผมก็เข้าใจดีเลยว่าคนที่เริ่มแบบงมเองมันงงมากๆ หลายคนที่เขียนเป็นอาจจะสามารถหา keyword เพื่อไปเสิชต่อเองได้ ก็หลักๆ จะดูใน stackoverflow.com 👈

ผมก็เลยอยากจะทำเวอร์ชั่นภาษาไทยบ้าง เผื่อมีคนหลงเข้ามาอ่านกันนะครับ 🤭

ในส่วนของวันนี้ ได้ความรู้จากเพื่อนมา เกี่ยวกับ def และ lambda ครับ

เบื้องต้นนะครับ ผมหัดใช้ python 3.0 โดยใช้ Spyder 3.7 desktop 👊

ขออนุญาตเขียนบน desktop แล้วก็อบรูปเอานะครับ อิอิ

def or lambda ; สำหรับผมมันเหมือนเราประกาศการทำงาน (ฟังก์ชั่น) สักชุดนึง

ตัวอย่าง

ผมอยากสร้าง function ให้ +1 ในชุดข้อมูลใดๆ โดยใช้ def หรือ lambda สิ่งที่ได้ก็จะประมาณนี้

  • สร้าง function โดยใช้ def โดยกำหนดชื่อให้มันเป็น ‘plusOne’ โดยข้อมูลใดๆ ที่จะนำมาใช้กับฟังก์ชั่นนี้ต้องเป็น int (ตัวเลข) จะเขียนได้แบบนี้….
  • สร้าง function โดยใช้ lambda โดยกำหนดชื่อให้มันเป็น ‘plusOne’ เหมือนกัน จะเขียนได้แบบนี้….

ตัวอย่างการใช้งาน

สมมติว่าผมมีชุดข้อมูลนึงชื่อ ‘array’ โดยกำหนดค่าให้ข้างในมี list 1,2,3

ถ้ากดรันเราจะได้ list ข้อมูลที่ชื่อว่า array ออกมา

จากนั้นก็กำหนดฟังก์ชั่นเก็บไว้ในตัวแปรแบบนี้

  • lambda_test คือ ผมกำหนด ฟังก์ชั่น ไว้ว่าข้อมูลใดๆ ให้ +1
  • def_test คือ plusOne อ้างอิงจากข้างบนนะครับ ก็คือ +1

โดยจะแสดงให้ดูผลลัพธ์โดยใช้ map มาช่วยนะครับ

อธิบายกับ map แปบ

ซึ่งเราจะเรียกใช้ function ด้วย

map(function ที่จะใช้,ชุดข้อมูลที่จะนำไปใช้กับ function)

แต่ในที่นี้ผมเพิ่ม list ครอบหน้า map(function, data) อีกที > เป็นการนำผลลัพธ์ชุดข้อมูลแต่ละตัวที่ผ่าน function เก็บเป็น list อีกที อ่านละงงๆ ใช่มั้ย 5555

ความหมายของมันคือ

จะนำข้อมูล ‘array’ ไปใช้ฟังก์ชั่นกับ ‘lambda_test’ โดยผลลัพธ์ที่ได้ ให้อารมณ์แบบว่า append แต่ละ values ใน list ‘array’ เมื่อ +1 เสร็จ แล้วเก็บผลเป็น list ไว้ในตัวแปร ‘result_lambda’

ซึ่งในส่วนของ ‘result_def’ ก็ความหมายเดียวกันแค่ฟังก์ชั่นใช้ def ในการเขียนครับ

ผลลัพธ์ที่ได้…

ได้ผลลัพธ์เหมือนกันจ้าาาา

เป็นไงกันบ้างครับ พอจะเข้าใจกันบ้างมั้ยเอ่ย coding จริงๆ ผมว่าเขียนเป็นอังกฤษน่าจะเข้าใจมากกว่าครับ เพราะมันสั้น 55555555555 😱

ไว้พบกันใหม่ในบทความหน้าครับผม

ปล. นี่เป็นหน้าต่างที่เขียน code ทั้งหมดครับ

--

--

TodeDunkPod
0 Followers

เขียนไปเรื่อยนิ