Python에서 정렬된 집합 만들기

Muhammad Maisam Abbas 2023년10월10일
Python에서 정렬된 집합 만들기

이 튜토리얼에서는 Python의 OrderedSet 클래스에 대해 설명합니다.

Python에서 OrderedSet 클래스를 사용하여 정렬된 집합 만들기

시작하려면 먼저 Python에서 집합이 무엇을 의미하는지 정의해 보겠습니다. 그것은 어떻게 든 관련이 있는 별개의 개체의 잘 정의된 컬렉션입니다. 이 정의에는 주문이 포함되어 있지 않습니다. 따라서 정의에 따라 집합에는 순서가 없습니다.

그러나 집합 요소의 원래 순서를 유지해야 하는 시나리오가 발생하면 OrderedSet 클래스를 사용할 수 있습니다. OrderedSet 클래스를 사용하려면 먼저 Python 패키지 관리자를 사용하여 장치에 ordered-set 패키지를 설치해야 합니다. ordered-set 패키지를 설치하는 명령은 다음과 같습니다.

pip install ordered-set

이제 각 집합 요소의 순서를 유지하는 집합을 만들 수 있습니다. 이 프로세스는 다음 프로그램에서 보여줍니다.

from ordered_set import OrderedSet

setABC = OrderedSet(["A", "B", "C"])
print(setABC)

출력:

OrderedSet(['A', 'B', 'C'])

위의 코드에서 OrderedSet 클래스를 사용하여 정렬된 집합을 만들고 각 인덱스의 값을 순서대로 표시했습니다. 이 OrderedSet은 목록과 집합 데이터 구조 사이의 하이브리드인 변경 가능한 데이터 구조입니다. 따라서 이 집합을 목록으로 초기화해야 합니다. 이런 식으로 집합은 각 요소의 인덱스를 유지합니다.

인덱싱을 단순화하기 위해 add() 함수는 집합에 추가된 새 요소의 인덱스를 반환합니다. 이것은 아래의 다음 프로세스에 표시됩니다.

print(setABC.add("D"))

출력:

3

setABC에 다른 요소를 추가하고 위의 코드에서 add() 함수가 반환한 값을 표시했습니다. index() 함수를 사용하여 특정 요소의 인덱스를 얻을 수도 있습니다. 이것은 다음 코드 스니펫에 나와 있습니다.

print(setABC.index("C"))

출력:

2

위 코드에서 index() 함수로 설정된 setABC 내부의 C 요소의 인덱스를 검색했습니다. 또한 |, &- 연산자를 사용하여 이러한 정렬된 집합에 대해 합집합, 교집합 및 차분과 같은 집합의 일반적인 작업을 수행할 수도 있습니다.

다음 코드 예제는 순서가 지정된 집합에서 합집합을 수행하는 방법을 보여줍니다.

from ordered_set import OrderedSet

setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC | setDEF
print(solutionSet)

출력:

OrderedSet(['A', 'B', 'C', 'D', 'E', 'F', 'G'])

집합 연산자 |를 사용하여 setABCsetDEF 집합의 합집합을 계산했습니다. 위의 코드에서. 아래의 다음 프로그램은 정렬된 집합에서 교집합을 수행하는 방법을 보여줍니다.

from ordered_set import OrderedSet

setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC & setDEF
print(solutionSet)

출력:

OrderedSet(['D'])

위의 코드에서 & 연산자를 사용하여 setABCsetDEF 세트의 교집합을 계산했습니다. 아래의 다음 코드 예제는 두 개의 정렬된 집합 간의 차이를 계산하는 방법을 보여줍니다.

from ordered_set import OrderedSet

setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC - setDEF
print(solutionSet)

출력:

OrderedSet(['A', 'B', 'C'])

위의 코드에서 - 연산자를 사용하여 setABCsetDEF 세트의 차이를 계산했습니다.

기본적으로 Python은 순서가 지정된 집합을 지원하지 않습니다. 그래도 우리는 정렬된 집합을 만드는 기능을 제공하는 ordered-set이라는 외부 패키지를 설치할 수 있습니다. 이 프로세스는 Python 버전 2.6 이상에서 지원됩니다.

이러한 정렬된 집합은 Python의 원래 목록과 집합을 혼합한 것입니다. 따라서 이 세트를 목록으로 초기화해야 합니다. 이 새로운 집합은 합집합, 교집합, 차등 집합의 모든 일반적인 기능을 제공합니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Python Set