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

파이썬으로 튜플 리스트에서 K로 나누어 떨어지는 요소만 가진 튜플 찾기

튜플로 구성된 리스트에서 특정 값 '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로 나누어 떨어지므로 이것만 결과로 반환됩니다.