튜플로 이루어진 리스트에서 모든 문자가 대문자로만 구성된 요소를 걸러내야 하는 경우, 간단한 반복문과 불리언(Boolean) 값, 그리고 append 메서드와 isupper 메서드를 활용하면 손쉽게 해결할 수 있습니다.
예제 코드
다음은 튜플 리스트에서 모든 요소가 대문자인 항목만 추출하는 과정을 보여주는 예제입니다.
my_list = [("PYTHON", "IS", "Fun"), ("PYTHON", "COOl"), ("PYTHON", ), "ORIENTED", "OBJECT"]
print("The list is : " )
print(my_list)
my_result_list = []
for sub_list in my_list:
my_result = True
for element in sub_list:
if not element.isupper():
my_result = False
break
if my_result:
my_result_list.append(sub_list)
print("The resultant list is : ")
print(my_result_list)출력 결과
The list is :
[('PYTHON', 'IS', 'Fun'), ('PYTHON', 'COOl'), ('PYTHON',), 'ORIENTED', 'OBJECT']
The resultant list is :
[('PYTHON',), 'ORIENTED', 'OBJECT']코드 설명
튜플과 문자열이 섞여 있는 리스트를 정의하고 콘솔에 출력합니다.
필터링된 결과를 저장할 빈 리스트를 생성합니다.
외부 반복문으로 원본 리스트를 순회하며, 매번 불리언 변수를 True로 초기화합니다.
내부 반복문에서 각 요소에 대해 isupper() 메서드를 호출하여 대문자 여부를 검사합니다.
요소 중 하나라도 대문자가 아니면 불리언 값을 False로 설정한 뒤, break 문으로 내부 반복문을 즉시 종료합니다.
내부 반복이 끝난 후에도 불리언 값이 True로 남아 있다면, 해당 항목의 모든 요소가 대문자라는 의미이므로 결과 리스트에 추가(append)합니다.
마지막으로 필터링된 최종 리스트를 콘솔에 출력합니다.
참고: 파이썬의 isupper() 메서드는 문자열에 포함된 모든 영문자가 대문자이고, 대소문자를 구분하는 문자가 최소 하나 이상 존재할 때 True를 반환합니다. 따라서 'Fun'이나 'COOl'처럼 소문자가 섞여 있는 문자열은 자동으로 제외되며, 실행 결과에서 볼 수 있듯이 ('PYTHON',), 'ORIENTED', 'OBJECT' 세 개의 항목만 남게 됩니다.