리스트에서 교차 패턴 쌍(cross pattern pairs)을 구해야 할 때는 리스트 컴프리헨션(list comprehension)과 '*' 연산자를 활용하면 간단하게 해결할 수 있습니다. 이 방법은 두 리스트의 모든 요소 조합에 대해 곱셈을 수행하여 새로운 리스트를 생성합니다.
예제 코드
my_list_1 = [14, 35, 26]
my_list_2 = [36, 24, 12]
print("첫 번째 리스트는 :")
print(my_list_1)
print("두 번째 리스트는 :")
print(my_list_2)
result = [i * j for j in my_list_1 for i in my_list_2]
print("결과는 :")
print(result)실행 결과
첫 번째 리스트는 : [14, 35, 26] 두 번째 리스트는 : [36, 24, 12] 결과는 : [504, 336, 168, 1260, 840, 420, 936, 624, 312]
코드 설명
먼저 두 개의 리스트를 정의하고, 콘솔에 출력하여 확인합니다.
리스트 컴프리헨션을 사용해 두 리스트를 반복하면서, 각 요소들의 곱을 순서대로 계산합니다. 외부 루프는
my_list_1, 내부 루프는my_list_2를 순회하므로 총 3 × 3 = 9개의 조합이 만들어집니다.계산된 결과 값들은 하나의 새로운 리스트로 묶여 변수
result에 저장됩니다.마지막으로 결과 리스트를 콘솔에 출력합니다.
참고 사항
이 기법은 데카르트 곱(Cartesian product)과 유사한 방식으로 동작하며, 두 리스트 간의 모든 요소 조합을 처리할 때 유용합니다. 만약 더 복잡한 조합 연산이 필요하다면 파이썬 표준 라이브러리의 itertools.product를 함께 사용하는 것도 좋은 대안입니다.