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

ลบช่วงหน้าและหลังของลิสต์ใน Python (Front and Rear Range Deletion)


ปัญหา

ต้องการลบจำนวนสมาชิก v ตัวจากหน้าและหลังของลิสต์พร้อมกัน

วิธีที่ 1: List Slicing (แนะนำ)

สร้างลิสต์ใหม่จาก slice list[v:-v]

listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
v = 2
new_list = listA[v:-v]
print(new_list)  # ['Tue', 'Wed', 'Thu']

วิธีที่ 2: ใช้คำสั่ง del (แก้ไขลิสต์เดิม)

ลบจากหลังก่อน แล้วค่อยหน้า (ลบหน้าก่อนดัชนีหลังจะเปลี่ยน)

listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
v = 2
del listA[-v:]   # ลบหลัง 2 ตัว
del listA[:v]    # ลบหน้า 2 ตัว
print(listA)     # ['Tue', 'Wed', 'Thu']

ข้อควรระวัง

  • Slicing สร้างลิสต์ใหม่ ใช้หน่วยความจำเพิ่ม
  • del แก้ไขที่เดิม (in-place) ประหยัดหน่วยความจำ
  • ถ้า v*2 >= len(list) จะได้ลิสต์ว่าง