ลบตัวเลขที่เป็น Palindrome (อ่านจากหน้าหลังเท่ากัน) ออกจากลิสต์ โดยใช้ List Comprehension และการกลับสตริง
ตัวอย่างโค้ด
my_list = [56, 78, 12, 32, 4, 8, 9, 100, 11]
print("The list is : ")
print(my_list)
my_result = [elem for elem in my_list if int(str(elem)[::-1]) not in my_list]
print("The result is : ")
print(my_result)
ผลลัพธ์
The list is : [56, 78, 12, 32, 4, 8, 9, 100, 11]
The result is : [56, 78, 12, 32, 100]
คำอธิบาย
str(elem)[::-1]กลับตัวเลขเป็นสตริง (เช่น 11 -> "11", 100 -> "001" -> int = 1)int(...)แปลงกลับเป็น int- เช็คว่าค่าที่กลับแล้ว ไม่อยู่ ในลิสต์เดิม -> เก็บไว้
- 4, 8, 9, 11 ถูกลบ เพราะค่ากลับ (4,8,9,11) อยู่ในลิสต์
- 100 คงอยู่ เพราะ 001 -> 1 ไม่อยู่ในลิสต์