튜플 리스트에서 특정 조건에 따라 튜플을 제거해야 하는 경우, 예를 들어 알파벳 문자가 전혀 포함되어 있지 않은 튜플을 걸러내고 싶다면 리스트 컴프리헨션(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(...) 형태로 작성하면 됩니다.