행렬에서 가장 일반적인 조합을 찾아야 할 때 'sort' 방법 및 'Counter' 방법과 함께 간단한 반복이 사용됩니다.
예시
아래는 동일한 데모입니다.
from collections import Counter from itertools import combinations my_list = [[31, 25, 77, 82], [96, 15, 23, 32]] print("The list is :") print(my_list) my_result = Counter() for elem in my_list: if len(elem) < 2: continue elem.sort() for size in range(2, len(elem) + 1): for comb in combinations(elem, size): my_result[comb] += 1 my_result = [elem for elem, my_count in my_result.items() if my_count == my_result.most_common(1)[0][1]] print("The result is :") print(my_result)
출력
The list is : [[31, 25, 77, 82], [96, 15, 23, 32]] The result is : [(15, 23, 32, 96), (25, 31), (25, 82), (15, 32), (23, 32), (15, 32, 96), (25, 31, 82), (15, 23), (25, 77), (15, 23, 32), (25, 77, 82), (32, 96), (31, 77, 82), (15, 96), (31, 77), (23, 96), (25, 31, 77, 82), (31, 82), (77, 82), (23, 32, 96), (15, 23, 96), (25, 31, 77)]
설명
-
필요한 패키지를 환경으로 가져옵니다.
-
목록의 목록이 정의되어 콘솔에 표시됩니다.
-
카운터는 변수에 할당됩니다.
-
목록이 반복됩니다.
-
요소의 길이가 2보다 작은지 확인하는 조건이 배치됩니다.
-
그렇다면 실행이 계속됩니다.
-
그렇지 않으면 목록의 요소가 '정렬' 방법을 사용하여 정렬됩니다.
-
목록이 다시 반복되고 '조합' 방법을 사용하여 특정 인덱스의 요소를 1씩 증가시킵니다.
-
다음으로 목록 이해를 사용하여 개수가 동일한지 확인합니다.
-
이것은 변수에 할당됩니다.
-
콘솔에 출력으로 표시됩니다.