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

Python – 알파벳이 포함되지 않은 튜플을 튜플 리스트에서 제거하는 방법

튜플 리스트에서 특정 조건에 따라 튜플을 제거해야 하는 경우, 예를 들어 알파벳 문자가 전혀 포함되어 있지 않은 튜플을 걸러내고 싶다면 리스트 컴프리헨션(list comprehension)을 활용하면 됩니다.

파이썬의 리스트는 정수, 실수, 문자열 등 서로 다른 자료형의 값을 하나의 자료구조에 함께 저장할 수 있습니다. 그리고 튜플 리스트란 리스트 안에 여러 개의 튜플이 담겨 있는 형태를 의미합니다.

리스트 컴프리헨션은 리스트를 반복(iteration)하면서 원하는 연산을 수행할 수 있도록 해주는 간결한 문법으로, 복잡한 반복문과 조건문을 한 줄로 표현할 수 있다는 장점이 있습니다.

아래는 실제 동작 예시입니다.

예제 코드

my_list = [('. ', 62), ('Mark', 5),
    ('Paul.', 21), ('.....', 0),
    ('-Jane', 115), ('Jake', 15),
    ('::', 63), ('John', 3), ('--', 1),
    ('there', 82), ('Harold', 100)]

my_result = [(a, b) for a, b in my_list
    if any(c.isalpha() for c in a)]

print("알파벳이 포함되지 않은 튜플이 제거되었습니다")
print("결과 튜플 리스트 :")
print(my_result)

실행 결과

알파벳이 포함되지 않은 튜플이 제거되었습니다
결과 튜플 리스트 :
[('Mark', 5), ('Paul.', 21), ('-Jane', 115), ('Jake', 15), ('John', 3), ('there', 82), ('Harold', 100)]

코드 설명

  • 먼저 튜플 리스트를 정의하고, 필요에 따라 콘솔에 출력하여 확인합니다.
  • 리스트 컴프리헨션을 통해 튜플 리스트를 순회하면서, 각 튜플의 첫 번째 요소(문자열)에 isalpha() 메서드를 적용해 해당 문자가 알파벳인지 검사합니다.
  • any() 함수를 사용해 문자열 내 단 하나라도 알파벳이 존재하는지 확인하며, 알파벳이 하나도 없는 튜플('. ', '.....', '::', '--' 등)은 결과에서 제외됩니다.
  • 필터링된 결과는 변수 my_result에 저장되며, 이 변수가 최종적으로 콘솔에 출력됩니다.

참고 사항

isalpha()는 문자열의 문자가 알파벳(a~z, A~Z)인지 판별하는 파이썬 내장 문자열 메서드입니다. 숫자나 특수문자, 공백에 대해서는 False를 반환하기 때문에, 위 예제처럼 기호만으로 구성된 튜플을 손쉽게 걸러낼 수 있습니다. 만약 조건을 반대로 바꾸고 싶다면 if not any(...) 형태로 작성하면 됩니다.