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

Python - Loại bỏ các phần tử Palindrome khỏi danh sách


Sử dụng list comprehension để lọc bỏ các số mà khi đảo ngược chữ số (chuyển sang string, đảo, chuyển lại int) thì vẫn tồn tại trong danh sách gốc. Lưu ý: logic này loại bỏ số nếu số đảo ngược của nó CÓ trong danh sách, không nhất thiết là chính nó palindrome (ví dụ 12 và 21).

Ví dụ

Minh họa:

my_list = [56, 78, 12, 32, 4, 8, 9, 100, 11]
print("Danh sách:", my_list)
my_result = [elem for elem in my_list if int(str(elem)[::-1]) not in my_list]
print("Kết quả:", my_result)

Kết quả

Danh sách: [56, 78, 12, 32, 4, 8, 9, 100, 11]
Kết quả: [56, 78, 12, 32, 100]

Giải thích

  • Duyệt từng phần tử elem.
  • Chuyển sang string, đảo ngược [::-1], chuyển lại int.
  • Kiểm tra giá trị đảo ngược có trong danh sách gốc không.
  • Nếu KHÔNG có -> giữ lại.
  • Kết quả: 4,8,9,11 bị loại vì đảo ngược của chúng (4,8,9,11) có trong list; 100 đảo ngược là 1 (không có trong list) -> giữ.