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

Chương trình Python xóa mọi y xuất hiện trước x trong list

Khi cần xóa mọi lần xuất hiện của 'y' nằm trước 'x' trong list, ta dùng list comprehension và phương thức index().

Ví dụ

my_list = [4, 45, 75, 46, 66, 77, 48, 99, 10, 40, 5, 8]
print("Danh sách là:")
print(my_list)

a, b = 8, 4
index_a = my_list.index(a)

my_result = [ele for index, ele in enumerate(my_list) if ele != b or (ele == b and index > index_a)]

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

Kết quả đầu ra

Danh sách là:
[4, 45, 75, 46, 66, 77, 48, 99, 10, 40, 5, 8]
Danh sách kết quả:
[45, 75, 46, 66, 77, 48, 99, 10, 40, 5, 8]

Giải thích

  • Tìm chỉ số của a=8 (index_a = 11).
  • List comprehension duyệt với enumerate.
  • Điều kiện giữ phần tử: ele != b (khác 4) HOẶC (ele == b and index > index_a) (là 4 NHƯNG sau vị trí 8).
  • Phần tử 4 ở đầu (index 0) bị loại vì index 0 < 11.

Lưu ý: Chỉ xóa y trước lần xuất hiện đầu tiên của x. Các y sau x được giữ lại.