บทความ

เรียน Python แล้วต้องลอง itertools: จาก Loop ธรรมดาสู่การคิดแบบ Data-Driven

ถ้าถามว่ามีโมดูลไหนใน Python ที่ถูกประเมินค่าต่ำกว่าความสามารถจริงมากที่สุด itertools น่าจะติดอันดับต้น ๆ หลายคนรู้จักมันแค่ from itertools import combinations เอาไว้สุ่มจับคู่ หรือสร้างชุดข้อมูล แต่เมื่อเริ่มทำระบบจริง ไม่ว่าจะเป็นเกม, AI, Rule Engine, State Machine หรือ Data Processing จะพบว่า itertools ไม่ได้เป็นแค่เครื่องมือช่วยวนลูป มันคือชุดเครื่องมือที่ช่วยให้เรา "เปลี่ยนวิธีคิด" จาก if ... elif ... elif ... ไปสู่ rules[(state, event)] จาก for ... for ... for ... ไปสู่ product(...) จาก current_player = player1 ... current_player = player2 ไปสู่ next(turns) product(): เครื่องจักรสร้างความเป็นไปได้ หนึ่งในฟังก์ชันที่ผมชอบที่สุดคือ from itertools import product สมมติเราทำเกมการ์ด มี elements = ["Fire", "Water", "Wind"] powers = [10, 20, 30] เราสามารถสร้างการ์ดทุกใบที่เป็นไปได้ด้วย cards = list(product(elements, powers)) ผลลัพธ์ [ ('Fire', 10), ('Fire', 20), ('Fire', 30), ('Water', ...

ขุมสมบัติที่ซ่อนอยู่ใน Python: รวม Built-in Functions และ Standard Library ที่ควรรู้

หลายคนที่เริ่มเรียน Python มักรู้จักเพียง print() , input() , for , if หรือ list เท่านั้น แต่ความจริงแล้ว Python มี "ขุมสมบัติ" ซ่อนอยู่จำนวนมากใน Built-in Functions และ Standard Library ที่ติดตั้งมาพร้อมภาษา ไม่ต้องลงแพ็กเกจเพิ่มแม้แต่นิดเดียว ยิ่งรู้จักเครื่องมือเหล่านี้มากขึ้น คุณจะยิ่งเขียนโค้ดสั้นลง อ่านง่ายขึ้น และแก้ปัญหาได้เร็วขึ้น 1. การจัดการข้อมูล (Data Processing) zip() จับคู่ข้อมูลหลายชุดเข้าด้วยกัน names = [ "Alice" , "Bob" , "Charlie" ] scores = [ 80 , 90 , 95 ] for name , score in zip ( names , scores ): print ( name , score ) ผลลัพธ์ Alice 80 Bob 90 Charlie 95 enumerate() วนลูปพร้อมรับ Index fruits = [ "apple" , "banana" , "orange" ] for idx , fruit in enumerate ( fruits , start = 1 ): print ( idx , fruit ) ผลลัพธ์ 1 apple 2 banana 3 orange any() มีอย่างน้อยหนึ่งค่าเป็นจริง any ([ 0 , 0 , 5 ]) ผลลัพธ์ True all() ทุกค่าต้องเป็นจริง all ([ 1 , 2 , 3 ]) ผล...

ป้ายดิจิตอลที่โต้ตอบได้