แนวคิด
กำหนดลิสต์ และลิสต์ index ที่ต้องการลบ ให้สร้างลิสต์ใหม่ที่ไม่มีสมาชิกตำแหน่งเหล่านั้น ใช้ enumerate และ not in
ตัวอย่างโค้ด
my_list = [91, 75, 15, 45, 69, 78, 23, 71, 36, 72]
print("ลิสต์ต้นฉบับ:", my_list)
my_list.sort()
print("หลังเรียง:", my_list)
index_list = [2, 4, 5, 7]
print("Index ที่จะลบ:", index_list)
my_result = []
for index, element in enumerate(my_list):
if index not in index_list:
my_result.append(element)
print("ผลลัพธ์:", my_result)
my_result.sort()
print("หลังเรียง:", my_result)
ผลลัพธ์
ลิสต์ต้นฉบับ: [91, 75, 15, 45, 69, 78, 23, 71, 36, 72]
หลังเรียง: [15, 23, 36, 45, 69, 71, 72, 75, 78, 91]
Index ที่จะลบ: [2, 4, 5, 7]
ผลลัพธ์: [15, 23, 45, 72, 78, 91]
หลังเรียง: [15, 23, 45, 72, 78, 91]
คำอธิบาย Index ที่ลบ (หลังเรียงแล้ว)
| Index | ค่า | ลบ? |
|---|---|---|
| 0 | 15 | ไม่ |
| 1 | 23 | ไม่ |
| 2 | 36 | ใช่ |
| 3 | 45 | ไม่ |
| 4 | 69 | ใช่ |
| 5 | 71 | ใช่ |
| 6 | 72 | ไม่ |
| 7 | 75 | ใช่ |
| 8 | 78 | ไม่ |
| 9 | 91 | ไม่ |
วิธี Pythonic
index_set = set(index_list)
my_result = [elem for i, elem in enumerate(my_list) if i not in index_set]