튜플로 구성된 리스트에서 특정 값 'K'로 나누어 떨어지는 요소들만 포함하는 튜플을 찾아야 하는 경우, 파이썬의 리스트 컴프리헨션(list comprehension)을 활용하면 간결하고 효율적으로 해결할 수 있습니다.
아래는 실제 구현 예시입니다.
예제
my_list = [(45, 90, 135), (71, 92, 26), (2, 67, 98)]
print("The list is : ")
print(my_list)
K = 45
print("The value of K has been initialized to ")
print(K)
my_result = [sub for sub in my_list if all(ele % K == 0 for ele in sub)]
print("Elements divisible by K are : " + str(my_result))출력 결과
The list is : [(45, 90, 135), (71, 92, 26), (2, 67, 98)] The value of K has been initialized to 45 Elements divisible by K are: [(45, 90, 135)]
코드 설명
튜플 여러 개로 구성된 리스트를 정의한 뒤, 콘솔에 출력합니다.
나누는 기준이 될 K 값을 정의하고 콘솔에 함께 출력합니다.
리스트 컴프리헨션을 사용하여 리스트의 각 튜플을 순회합니다.
all()함수와 제너레이터 표현식을 조합하여, 각 튜플 내 모든 요소가 K로 나누어 떨어지는지(ele % K == 0) 검사합니다.조건을 만족하는 튜플만 골라내어 새로운 리스트인
my_result에 저장합니다.최종 결과를 콘솔에 출력합니다.
핵심 포인트
여기서 중요한 역할을 하는 것은 all() 함수입니다. all()은 이터러블의 모든 요소가 참(True)일 때만 True를 반환하기 때문에, 튜플 안의 단 하나의 요소라도 K로 나누어 떨어지지 않으면 해당 튜플은 결과에서 제외됩니다. 위 예제에서는 세 튜플 중 (45, 90, 135)만 모든 요소가 45로 나누어 떨어지므로 이것만 결과로 반환됩니다.