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

Get Last N Elements จากลิสต์ใน Python: ดึง N ตัวท้ายด้วย Slicing และ islice

ได้ลิสต์ ต้องการดึง 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) สำหรับผลลัพธ์