🐍 Daily Python Problem: นับความถี่ (Frequency Counter

โจทย์วันนี้คือการเขียนฟังก์ชัน count_frequency ที่แปลง List ให้กลายเป็น Dictionary เพื่อสรุปว่า แต่ละรายการปรากฏซ้ำกี่ครั้ง (นับความถี่)!

📝 โจทย์ (Problem & Task):

รับ List แล้วคืนค่า (return) Dictionary ที่ Key คือรายการใน List และ Value คือจำนวนครั้งที่ปรากฏ

💡 3 วิธีเทพๆ ในการนับความถี่ใน Python!

1. แบบพื้นฐาน (ใช้ Loop + If/Else) - ฝึก Logic! 🧱

• สร้าง dict ว่าง

• วน Loop ดูว่ารายการนั้น เคยอยู่ใน dict หรือยัง

• ถ้า เคย (if item in map): ให้บวกค่าเพิ่มไป +1

• ถ้า ไม่เคย (else): ให้สร้าง Key ใหม่และกำหนดค่าเริ่มต้นเป็น 1

• วิธีนี้ช่วยให้เข้าใจการทำงานของ dict

2. แบบ Pythonic (ใช้เมธอด .get()) - โค้ดสั้นลง! ✨

• ใช้เมธอด .get(key, default_value)

• frequency_map[item] = frequency_map.get(item, 0) + 1

• หาก item มีอยู่ จะดึงค่าเดิมมาบวก 1, หาก ไม่มี จะใช้ค่าเริ่มต้น 0 มาบวก 1 (คือการสร้าง Key ใหม่) ทำให้ไม่ต้องใช้ if/else

3. แบบ Pro (ใช้ collections.Counter) - เร็วที่สุด! ⭐️

• ใช้โมดูลมาตรฐาน collections และคลาส Counter

• แค่ return Counter(items) ก็เสร็จ!

• วิธีนี้คือวิธีที่สั้นที่สุด อ่านง่ายที่สุด และเร็วที่สุดในการใช้งานจริง!

💖 การรู้หลายวิธีแก้ปัญหาจะทำให้เราเลือกเครื่องมือที่เหมาะสมกับสถานการณ์ที่สุดค่ะ! Keep going!

#python #programming #data #ai #learnonlemon8

2025/11/5 แก้ไขเป็น

... อ่านเพิ่มเติมนอกจากวิธีการนับความถี่ที่ได้แนะนำไปแล้ว การเลือกวิธีที่เหมาะสมกับบริบทโปรแกรมก็สำคัญมากครับ สำหรับโปรเจกต์หรือสคริปท์ขนาดเล็กที่เราอยากฝึกทักษะพื้นฐาน การใช้ Loop กับ if/else จะช่วยให้เข้าใจการทำงานภายในของ Dictionary อย่างลึกซึ้ง ส่วนถ้าต้องการโค้ดที่กระชับและอ่านง่ายขึ้น การใช้เมธอด .get() ก็ทำให้งานเขียนสะดวกกว่า โดยลดจำนวนบรรทัดและไม่ต้องเช็กเงื่อนไขมาก แต่ถ้าต้องทำงานกับข้อมูลขนาดใหญ่หรือเน้นประสิทธิภาพ Collections.Counter เป็นคำตอบ เพราะมันถูกออกแบบมาสำหรับงานนี้โดยเฉพาะและเร็วที่สุด ผมเองเคยลองใช้วิธี Pro กับข้อมูลที่มีรายการหลักพันขึ้นไป พบว่ามันช่วยประหยัดเวลาและทำโค้ดดูดีขึ้นมาก นอกจากนี้ การเข้าใจโจทย์และการเลือกเครื่องมือให้เหมาะสมก็ช่วยพัฒนาโค้ดให้มีประสิทธิภาพและทำงานได้ตรงตามความต้องการมากขึ้นครับ สุดท้าย อย่าลืมทดสอบฟังก์ชันของเรากับเคสต่าง ๆ ไม่ว่าจะเป็น List ว่าง, รายการซ้ำ หรือชนิดข้อมูลที่ไม่คาดคิด เพื่อให้มั่นใจว่าโปรแกรมทำงานได้อย่างถูกต้องและมีคุณภาพครับ

ค้นหา ·
python เบื้องต้น สำหรับ data