Tag: itertools
7 รายการ
Blog
Python itertools.tee: แยก iterator ได้ แต่ต้องรู้ว่า buffer โตตรงไหน
อธิบาย shared source, backlog เมื่อ consumer วิ่งไม่เท่ากัน และวิธีเลือก list หรือ tee ให้ตรงงาน
Python itertools.compress: ให้ boolean mask กับข้อมูลเดินพร้อมกันแบบ lazy
คัดสมาชิกด้วย itertools.compress พร้อมรับมือ selector สั้นยาวไม่เท่ากัน และแยกกรณีที่ควร validate ก่อน
Python itertools.accumulate: เก็บสถานะสะสมโดยไม่สร้างลูปข้างเคียง
ใช้ accumulate ทำ running total และ state transition พร้อม initial value ที่ช่วยให้ขอบเขตข้อมูลอ่านง่าย

Python itertools.batched: หั่นลิสต์เป็นก้อนคงที่แบบสั้น ๆ
สอนใช้ itertools.batched แบ่ง iterable เป็นทูเปิลขนาด n พร้อม unittest ที่รันจริง อ้างอิง docs.python.org
Python itertools.groupby: รวมข้อมูลที่ติดกัน ไม่ใช่ SQL GROUP BY
เข้าใจ adjacent runs, shared iterator และเหตุผลที่ต้อง sort ก่อนเมื่ออยากรวม key ทั้งชุด พร้อม unittest กันบั๊กข้อมูลสลับกลุ่ม

itertools.pairwise: เดินคู่ติดกันในลำดับโดยไม่เขียน zip เอง
อธิบาย pairwise ตั้งแต่ Python 3.10 เทียบกับ zip(seq, seq[1:]) พร้อม unittest
Python itertools.batched แบบ strict: จับข้อมูลชุดสุดท้ายที่มาไม่ครบ
แบ่ง iterable เป็นก้อนแบบ lazy และใช้ strict=True เมื่อต้องการให้จำนวนข้อมูลหารขนาด batch ลงตัว พร้อม unittest