Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - Matrix에서 가장 일반적인 조합

<시간/>

행렬에서 가장 일반적인 조합을 찾아야 할 때 '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씩 증가시킵니다.

  • 다음으로 목록 이해를 사용하여 개수가 동일한지 확인합니다.

  • 이것은 변수에 할당됩니다.

  • 콘솔에 출력으로 표시됩니다.