Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python xóa phần tử tại các chỉ số cho trước

Khi cần xóa phần tử tại các chỉ số cụ thể từ list, ta dùng enumerate, toán tử not in, vòng lặp và append().

Ví dụ

my_list = [91, 75, 15, 45, 69, 78, 23, 71, 36, 72]
print("Danh sách gốc:")
print(my_list)

print("Danh sách sau sắp xếp:")
my_list.sort()
print(my_list)

index_list = [2, 4, 5, 7]
print("Các chỉ số cần xóa:", index_list)

my_result = []
for index, element in enumerate(my_list):
    if index not in index_list:
        my_result.append(element)

print("Danh sách kết quả:")
print(my_result)

print("Kết quả sau sắp xếp:")
my_result.sort()
print(my_result)

Kết quả đầu ra

Danh sách gốc:
[91, 75, 15, 45, 69, 78, 23, 71, 36, 72]
Danh sách sau sắp xếp:
[15, 23, 36, 45, 69, 71, 72, 75, 78, 91]
Các chỉ số cần xóa: [2, 4, 5, 7]
Danh sách kết quả:
[15, 23, 45, 72, 78, 91]
Danh sách kết quả sau sắp xếp:
[15, 23, 45, 72, 78, 91]

Giải thích

  • Sắp xếp list trước (tùy chọn).
  • Duyệt với enumerate, nếu index không trong index_list → giữ lại.
  • Chỉ số bị xóa: 2(36), 4(69), 5(71), 7(75) → giữ: 15,23,45,72,78,91.

Cách viết gọn:

my_result = [v for i, v in enumerate(my_list) if i not in index_list]

Lưu ý: index_list nên là set để tra cứu O(1): index_set = set(index_list).