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

파이썬으로 리스트 내 주어진 요소들의 공배수 찾아 출력하기 – 리스트 컴프리헨션 활용법


리스트에 담긴 요소 중에서 다른 리스트로 제시된 값들의 배수(공배수)에 해당하는 요소만 골라 출력해야 하는 경우, 리스트 컴프리헨션(list comprehension)을 활용하면 간결하고 효율적으로 해결할 수 있습니다.

예제

다음은 그 구현 방식을 보여주는 예시입니다.

my_list = [45, 67, 89, 90, 10, 98, 10, 12, 23]

print("The list is :")
print(my_list)

my_division_list = [6, 4]
print("The division list is :")
print(my_division_list)

my_result = [element for element in my_list if all(element % j == 0 for j in my_division_list)]

print("The result is :")
print(my_result)

출력

The list is :
[45, 67, 89, 90, 10, 98, 10, 12, 23]
The division list is :
[6, 4]
The result is :
[12]

설명

  • 먼저 하나의 리스트를 정의한 뒤, 콘솔 화면에 출력합니다.

  • 나누는 기준이 될 정수들로 구성된 또 다른 리스트를 정의합니다.

  • 리스트 컴프리헨션을 사용해 원본 리스트의 각 요소를 순회하면서, 해당 요소가 기준 리스트의 모든 값으로 나누었을 때 나머지가 0이 되는지 검사합니다.

  • 조건을 만족하는 요소만 새로운 리스트에 저장되고, 그 결과가 변수에 할당됩니다.

  • 마지막으로 최종 결과를 콘솔 화면에 출력합니다.

핵심 포인트: all() 함수

이 코드에서 핵심적인 역할을 하는 것은 all() 함수입니다. all()은 반복 가능한 객체(iterable) 안의 모든 요소가 참일 때만 True를 반환하므로, 기준 리스트 [6, 4]의 모든 숫자로 나누어 떨어지는지를 한 번의 조건식으로 확인할 수 있습니다. 위 예제에서는 나머지 연산자 %를 통해 나눗셈 후 나머지가 0인지 판별하며, 두 조건(6과 4의 배수)을 동시에 만족하는 유일한 값인 12만 결과 리스트에 남게 됩니다.