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

Python – 지정된 문자를 제외한 문자열 목록의 모든 요소 가져오기


문자열 목록에서 지정된 문자를 기준으로 요소를 걸러내야 하는 경우, 리스트 컴프리헨션(list comprehension)append 메서드를 활용하면 간단하게 해결할 수 있습니다.

아래는 실제 동작 과정을 보여주는 예제입니다.

예제

my_list = ["hi", "is", "great", "pyn", "pyt"]

print("The list is :")
print(my_list)

my_key = 'n'

print("The value for key is ")
print(my_key)

my_result = []

for sub in my_list:
    my_result.append(''.join([element for element in sub if element == my_key]))

print("The result is :")
print(my_result)

출력

The list is :
['hi', 'is', 'great', 'pyn', 'pyt']
The value for key is
n
The result is :
['', '', '', 'n', '']

코드 설명

  • 문자열로 구성된 리스트를 정의하고 콘솔에 출력합니다.

  • 찾고자 하는 키 값을 정의한 뒤 콘솔에 함께 출력합니다.

  • 결과를 저장할 빈 리스트를 하나 생성합니다.

  • 리스트 컴프리헨션을 사용해 원본 리스트의 각 문자열을 순회하면서, 문자열 내부의 개별 문자가 키와 일치하는지 검사합니다.

  • 일치하는 문자만 골라 join으로 다시 하나의 문자열로 합친 후, append 메서드를 통해 결과 리스트에 추가합니다.

  • 모든 반복이 끝나면 최종 결과 리스트를 콘솔에 출력합니다.

더 간결한 방법: 한 줄 리스트 컴프리헨션

위의 for 루프와 append 조합은 아래와 같이 리스트 컴프리헨션 하나로 더 간결하게 표현할 수도 있습니다.

my_result = [''.join([ch for ch in sub if ch == my_key]) for sub in my_list]

이 방식은 코드 길이가 짧아질 뿐만 아니라 가독성도 높아져, 파이썬다운(Pythonic) 스타일로 손꼽힙니다. 문자열 필터링 로직을 자주 작성한다면 이 패턴을 익혀두면 큰 도움이 됩니다.