Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การตัด Dictionary ให้เหลือความยาวที่กำหนดใน Python (itertools.islice)

โมดูล itertools มีฟังก์ชัน islice() สำหรับ slice iterator ได้แบบ lazy (ไม่ต้องสร้างลิสต์ทั้งหมดในหน่วยความจำ)

ไวยากรณ์

itertools.islice(iterable, start, stop[, step])

ตัวอย่าง: ตัด Dictionary ให้เหลือ 3 รายการแรก

>> D1 = {"pen": 25, "pencil": 10, "book": 100, "sharpner": 5, "eraser": 5}
>>> import itertools
>>> D2 = dict(itertools.islice(D1.items(), 3))
>>> D2
{'pen': 25, 'pencil': 10, 'book': 100}

การใช้งานขั้นสูง

>> # ข้าม 2 รายการแรก แล้วเอา 3 รายการ
>>> dict(itertools.islice(D1.items(), 2, 5))
{'book': 100, 'sharpner': 5, 'eraser': 5}

>>> # ทุก 2 รายการ (step=2)
>>> dict(itertools.islice(D1.items(), 0, None, 2))
{'pen': 25, 'book': 100, 'eraser': 5}

ข้อควรระวัง

  • Dictionary ใน Python 3.7+ มี insertion order → islice ตัดตามลำดับที่เพิ่มเข้ามา
  • Python < 3.7: Dictionary ไม่มีลำดับ → ผลลัพธ์ไม่ deterministic
  • islice ทำงานกับ iterator ใดๆ ไม่ได้แค่ dict