Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

리스트에서 회문 요소를 제거하는 파이썬 프로그램

리스트에서 회문(palindrome) 요소를 제거해야 할 때는 리스트 컴프리헨션(list comprehension)'not' 연산자를 함께 사용하면 간결하고 효율적으로 처리할 수 있습니다.

예제 코드

다음은 리스트에서 회문 요소를 제거하는 전체 예제입니다.

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]

코드 설명

  • 먼저 정수로 구성된 리스트를 정의하고 콘솔에 출력합니다.

  • 리스트 컴프리헨션을 사용해 리스트의 각 요소를 순회하면서, 해당 요소를 문자열로 변환한 뒤 슬라이싱([::-1])으로 순서를 뒤집고, 다시 정수형으로 변환합니다.

  • 뒤집은 값이 원래 리스트에 존재하지 않는 경우에만('not' 연산자) 그 요소를 결과 리스트에 포함시킵니다.

  • 회문 숫자(예: 11)나 한 자리 숫자(예: 4, 8, 9)는 뒤집어도 자기 자신과 같으므로 리스트에 이미 존재하게 되어 결과에서 제외됩니다.

  • 최종 결과는 변수 my_result에 저장된 후 콘솔에 출력됩니다.

이처럼 문자열 슬라이싱과 리스트 컴프리헨션을 조합하면 별도의 반복문이나 조건문 없이 한 줄의 코드로 회문 요소를 손쉽게 필터링할 수 있습니다.