웹사이트 검색

Python Set/Frozenset 데이터 구조 알아보기 – 4부


Python 데이터 구조 시리즈의 4부에서는 집합이 무엇인지, 집합이 Python의 다른 데이터 구조와 어떻게 다른지, 집합 개체를 생성하는 방법, 집합 개체를 삭제하는 방법 및 집합 개체의 메서드에 대해 논의합니다. .

  • 집합 개체는 해시 가능한 별개의 개체를 순서 없이 모아 놓은 것입니다.
  • Set은 개체에서 중복 항목을 자동으로 제거합니다.
  • 집합 객체는 순서가 없으므로 인덱싱 및 슬라이싱 작업이 지원되지 않습니다.

현재 두 가지 내장 세트 유형이 있습니다.

  1. 세트 – 변경 가능하므로 해시 값이 없으며 사전 키나 다른 세트의 요소로 사용할 수 없습니다.
  2. frozenset – 불변 및 해시 가능 – 생성된 후에는 내용을 변경할 수 없습니다. 따라서 사전 키 또는 다른 세트의 요소로 사용될 수 있습니다.

세트 객체 구성

생성자 메서드 "set()"을 사용하거나 "{a,b,c}" 요소를 쉼표로 구분하는 중괄호를 사용하여 집합을 만듭니다.

참고: 사전 개체를 생성하므로 빈 중괄호를 통해 집합 개체를 생성할 수 없습니다.

방법 설정

내장된 “dir()” 함수를 사용하여 사용 가능한 설정 방법과 속성을 나열하세요.

세트 객체에 요소 추가

이미 언급했듯이 set은 변경 가능한 유형입니다. 설정된 개체가 생성되면 추가, 삭제, 업데이트할 수 있습니다.

추가업데이트 두 가지 설정 방법에 대해 이야기해 보겠습니다.

  • add(elem) 메소드 – 이 메소드는 단일 요소를 세트 객체에 추가합니다.
  • update(*others) 메소드 – 이 메소드는 세트 객체에 여러 요소를 추가합니다. 업데이트 메소드의 인수로 변경 가능/불변 객체를 전달할 수 있습니다.

참고: 중복 항목은 자동으로 제거됩니다.

설정된 개체에서 요소 제거/지우기

이전에 다른 데이터 구조 주제(리스트, 튜플, 딕셔너리)에서 본 것처럼 set의 경우 내장 키워드 “del”을 사용하여 네임스페이스(예: 메모리).

다음은 요소를 제거하기 위한 set 객체의 메서드입니다.

  • clear() – 모든 요소를 지워 세트를 비워줍니다. 이 clear() 메소드는 동일한 기능을 제공하는 다른 데이터 구조에서 사용할 수 있습니다.
  • pop() – 임의의 요소를 제거합니다.
  • discard(elem) – 항목이 설정된 개체에서 발견되지 않으면 “discard()” 메서드는 오류를 발생시키지 않습니다.
  • remove(elem)“discard()” 메소드와 동일하지만 항목을 찾을 수 없으면 KeyError가 발생합니다.

연산 집합

Set은 교집합, 합집합, 차이 및 대칭 차이와 같은 수학 연산을 수행하는 메소드를 제공합니다. 고등학교 시절의 '벤 다이어그램'을 기억하시나요?

수학적 연산이 수행되는 방법에 대해 아래 방법을 살펴보겠습니다.

  • 노동 조합
  • 교차로
  • 교차로_업데이트
  • 대칭_차이
  • 대칭_차이_업데이트
  • 차이점
  • 차이_업데이트
  • 분리되어 있다
  • issubset
  • issuperset

합집합, 교차점, 차이, 대칭_차이

  • union(*other) – 세트와 다른 모든 요소의 요소가 포함된 새 세트를 반환합니다.
  • intersection(*other) – 세트 및 기타 모든 항목에 공통된 요소가 포함된 새 세트를 반환합니다.
  • difference(*others) – 다른 세트에는 없는 세트의 요소가 포함된 새 세트를 반환합니다.
  • symmetric_difference(other) – 세트 또는 다른 세트에 요소가 포함되어 있지만 둘 다에 포함되지는 않은 새 세트를 반환합니다.

교차로_업데이트

intersection_update(*others) – 세트에서 발견된 요소만 유지하고 다른 모든 요소를 유지하여 세트를 업데이트합니다.

차이점 업데이트

difference_update(*others) – 집합을 업데이트하고 그 안에 있는 요소만 유지하고 다른 모든 요소는 유지합니다.

대칭_차이_업데이트

symmetric_difference_update(other) – 세트를 업데이트하여 두 세트 모두에서 발견된 요소만 유지하고 두 세트 모두에서 발견된 요소만 유지합니다.

Isdisjoint, Issubset, Issuperset

  • isdisjoint(other) - 집합에 other와 공통된 요소가 없으면 True를 반환합니다. 집합은 교차점이 빈 집합인 경우에만 분리됩니다.
  • issubset() – 세트의 모든 요소가 다른 요소에 있는지 테스트합니다.
  • issuperset() – 다른 요소의 모든 요소가 세트에 있는지 테스트합니다.

Copy() 메서드

copy() 메소드를 사용하여 기존 세트 객체의 동일한 복사본을 만들 수 있습니다. 이 방법은 목록, 사전 등과 같은 다른 데이터 구조 유형에도 사용할 수 있습니다.

내장된 “del” 키워드를 사용하여 네임스페이스에서 세트 개체를 삭제합니다.

냉동 세트

  • 고정 세트는 불변 유형입니다. 일단 구성되면 목록에서 요소를 추가, 제거 또는 업데이트할 수 없습니다.
  • 불변 세트인 고정 세트는 해시 가능하며 사전의 '키' 또는 다른 세트 객체의 요소로 사용될 수 있습니다.
  • Frozen 세트는 “frozenset()” 함수를 사용하여 구성됩니다.
  • 고정 집합은 "집합"과 비교하여 Union(), Intersection, Copy(), isdisjoint() 등과 같은 동일한 메서드 집합을 제공합니다.

요약

이 기사에서는 무엇이 설정되었는지, 설정과 고정 세트의 차이점, 설정 요소를 생성하고 액세스하는 방법, 설정 메서드 등을 살펴보았습니다.