Python의 목록 조합

Samyak Jain 2023년1월30일
  1. itertools.combinations()함수를 사용하여 Python에서 목록 조합 찾기
  2. itertools.combinations_with_replacement()함수를 사용하여 Python에서 목록 조합 찾기
  3. 사용자 정의powerset()함수를 생성하여 Python에서 목록 조합 찾기
Python의 목록 조합

조합은 요소 모음에서 가능한 배열 수를 결정하는 기술입니다. 요소의 조합에서 요소는 임의의 순서로 선택됩니다.

이 자습서에서는 Python에서 목록 요소의 전체 조합을 찾습니다.

itertools.combinations()함수를 사용하여 Python에서 목록 조합 찾기

itertools모듈의combinations(list_name, x)함수는 목록 이름과 숫자 ‘x’를 매개 변수로 취하고 한 요소의 가능한 모든 조합을 포함하는 길이 ‘x’의 튜플 목록을 반환합니다. 다른 요소와 함께 목록.

예를 들면

from itertools import combinations

A = [10, 5, "Hi"]
temp = combinations(A, 2)
for i in list(temp):
    print(i)

출력:

(10, 5)
(10, 'Hi')
(5, 'Hi')

정렬 된 목록은 정렬 된 순서로 조합 튜플을 출력합니다. combinations()함수를 사용하여 목록의 한 요소를 자신과 결합 할 수 없습니다.

itertools.combinations_with_replacement()함수를 사용하여 Python에서 목록 조합 찾기

itertools모듈의 함수combinations_with_replacement(list_name, x)는 목록 이름과 숫자 ‘x’를 매개 변수로 취하고 목록 요소의 가능한 모든 조합을 포함하는 길이 ‘x’의 튜플 목록을 반환합니다. 이 기능을 사용하면 목록의 한 요소를 자신과 결합 할 수 있습니다.

예를 들면

from itertools import combinations_with_replacement

A = [1, 5, "Hi"]
temp = combinations_with_replacement(A, 2)
for i in list(temp):
    print(i)

출력:

(1, 1)
(1, 5)
(1, 'Hi')
(5, 5)
(5, 'Hi')
('Hi', 'Hi')

사용자 정의powerset()함수를 생성하여 Python에서 목록 조합 찾기

수학에서 모든 집합의 거듭 제곱 집합은 빈 집합과 함께 주어진 집합의 가능한 모든 하위 집합을 포함하는 집합입니다. 집합S = {2, 5, 10}의 거듭 제곱 집합은{{}, {2}, {5}, {10}, {2, 5}, {2, 10}, {5, 10}, {2, 5, 10}}입니다. 다음 함수powerset()는 목록의 모든 길이 ‘r’을 반복하고 목록 요소의 가능한 모든 조합을 인쇄하는 데 사용됩니다.

예를 들면

from itertools import chain, combinations


def powerset(list_name):
    s = list(list_name)
    return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))


A = [60, 7, "Hi"]
for x in powerset(A):
    print(x)

출력:

()
(1,)
(5,)
('Hi',)
(1, 5)
(1, 'Hi')
(5, 'Hi')
(1, 5, 'Hi')

관련 문장 - Python List