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

파이썬으로 특정 문자만 남기고 리스트의 모든 문자를 대체하는 방법

리스트에서 특정 문자만 남기고 나머지 모든 문자를 다른 문자로 바꿔야 하는 경우, 리스트 컴프리헨션(list comprehension)'==' 비교 연산자를 사용하면 코드 한 줄로 간단하게 처리할 수 있습니다.

예제 코드

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

my_list = ['P', 'Y', 'T', 'H', 'O', 'N', 'P', 'H', 'P']

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

replace_char = '$'

retain_char = 'P'

my_result = [element if element == retain_char else replace_char for element in my_list]

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

실행 결과

The list is :
['P', 'Y', 'T', 'H', 'O', 'N', 'P', 'H', 'P']
The result is :
['P', '$', '$', '$', '$', '$', 'P', '$', 'P']

코드 설명

  • 문자들로 구성된 리스트를 정의하고 콘솔에 출력합니다.
  • 리스트에 저장된 문자 중 유지할 문자(retain_char)대체할 문자(replace_char)를 각각 정의합니다.
  • 리스트 컴프리헨션을 사용해 리스트를 순회하면서, 현재 요소가 유지할 문자와 같으면 그대로 새 리스트에 추가하고, 그렇지 않으면 지정된 대체 문자로 바꿉니다.
  • 조건에 따라 변환된 문자들은 새로운 리스트로 저장되어 변수에 할당됩니다.
  • 최종 결과 리스트가 콘솔에 출력됩니다.

핵심 문법: 조건부 표현식(Conditional Expression)

이 예제의 핵심은 [element if element == retain_char else replace_char for element in my_list] 구문입니다. 이는 일반적인 for 반복문과 if-else 조건문을 한 줄로 압축한 형태로, 아래 코드와 완전히 동일하게 동작합니다.

my_result = []
for element in my_list:
    if element == retain_char:
        my_result.append(element)
    else:
        my_result.append(replace_char)

리스트 컴프리헨션은 반복문보다 코드가 간결할 뿐만 아니라 실행 속도 면에서도 유리하기 때문에, 이처럼 리스트의 요소를 조건에 따라 변환하는 작업에 널리 활용됩니다.