ได้ลิสต์ ต้องการดึง N ตัวสุดท้าย
วิธี 1: List Slicing (ง่ายที่สุด)
listA = ['Mon','Tue','Wed','Thu','Fri','Sat']
n = 4
res = listA[-n:]
print(res) # ['Wed', 'Thu', 'Fri', 'Sat']
วิธี 2: ใช้ itertools.islice กับ reversed
from itertools import islice
listA = ['Mon','Tue','Wed','Thu','Fri','Sat']
n = 4
res = list(islice(reversed(listA), 0, n))
res.reverse()
print(res) # ['Wed', 'Thu', 'Fri', 'Sat']
สรุป
- Slicing: เข้าใจง่าย ใช้หน่วยความจำ O(n)
- islice: เหมาะกับ Iterator ใหญ่/ไม่รู้ขนาดล่วงหน้า ใช้หน่วยความจำ O(n) สำหรับผลลัพธ์