특정 자릿수(K)의 요소를 가진 튜플을 추출해야 하는 경우, 리스트 컴프리헨션(list comprehension)을 활용하면 코드 한 줄로 간단하게 처리할 수 있습니다. 리스트 컴프리헨션은 튜플 리스트의 각 요소를 순회하면서 주어진 조건을 검사하고, 조건을 충족하는 요소만 골라내어 새로운 변수에 저장합니다.
아래는 실제 동작을 보여주는 예시입니다.
예제
my_list = [(34, 56), (45, 6), (111, 90), (11, 35), (78, )]
print("리스트 : ")
print(my_list)
K = 2
print("K의 값은 " + str(K) + "(으)로 초기화되었습니다.")
my_result = [sub for sub in my_list if all(len(str(elem)) == K for elem in sub)]
print("추출된 튜플 : ")
print(my_result)
출력
리스트 : [(34, 56), (45, 6), (111, 90), (11, 35), (78,)] K의 값은 2(으)로 초기화되었습니다. 추출된 튜플 : [(34, 56), (11, 35), (78,)]
코드 설명
튜플로 구성된 리스트를 정의한 뒤 콘솔에 출력합니다.
원하는 자릿수를 나타내는 'K' 값을 초기화합니다.
리스트 컴프리헨션을 사용하여 튜플 리스트를 순회합니다.
all() 함수와 len(str(elem)) == K 조건을 통해, 각 튜플의 모든 요소가 문자열로 변환했을 때 길이가 K와 일치하는지, 즉 K자리 숫자인지 검사합니다.
조건을 통과한 튜플들만 모아 새로운 리스트를 생성하고 결과 변수에 할당합니다.
최종 결과를 콘솔에 출력합니다.