Sets - Learn Python 3 - Snakify

Lesson 10
세트


1. 세트 란 무엇인가요?

Python의 Set 은 수학 집합과 동일한 데이터 구조입니다. 다양한 요소로 구성 될 수 있습니다. 집합의 요소 순서는 정의되지 않습니다. 집합의 요소를 추가 및 삭제할 수 있으며 집합의 요소를 반복 할 수 있으며 집합 (표준화, 교차점, 차이)에 대한 표준 작업을 수행 할 수 있습니다. 그 외에도 요소가 집합에 속하는지 확인할 수 있습니다.

요소가 정렬 된 목록으로 저장되는 배열과는 달리 집합의 요소 순서는 정의되지 않습니다 (또한 집합 요소는 일반적으로 집합의 모양 순으로 저장되지 않으므로 요소가 집합에 더 빨리 속하는지 검사 할 수 있음) 세트의 모든 요소를 ​​통과하는 것보다).

변경할 수없는 데이터 유형은 집합의 요소가 될 수 있습니다 : 숫자, 문자열, 튜플. 변경 가능 (변경 가능) 데이터 유형은 세트의 요소가 될 수 없습니다. 특히 list는 집합의 요소가 될 수 없지만 튜플 can 일 수 있고 다른 집합은 집합의 요소가 될 수 없습니다. 불변의 요구 사항은 컴퓨터가 메모리에서 어떻게 세트를 표현하는지에 따라 다릅니다.

2. 집합을 정의하는 방법

대괄호로 묶인 모든 요소의 이름을 지정하여 집합을 간단하게 정의 할 수 있습니다. 유일한 예외는 빈 집합 이며, set() 함수를 사용하여 만들 수 있습니다. set(..) 이리스트, 문자열 또는 튜플을 매개 변수로 가지면 요소로 구성된 집합을 반환합니다. 예를 들어,

A = {1, 2, 3}
A = set('qwerty')
print(A)

{'e', 'q', 'r', 't', 'w', 'y'} 를 출력으로 출력합니다.

요소의 순서는 중요하지 않습니다. 예를 들어, 프로그램

A = {1, 2, 3}
B = {3, 2, 3, 1}
print(A == B)

AB 가 같은 세트이기 때문에 True 를 인쇄합니다.

각 요소는 한 번만 입력 할 수 있습니다. set('Hello'){'H', 'e', 'l', 'o'} 네 요소 집합을 반환합니다.

3. 요소를 사용한 작업

len 함수를 사용하여 세트의 요소 수를 얻을 수 있습니다.

또한 다음과 같은 루프 for 사용하여 집합의 모든 요소를 ​​반복 할 수 있습니다 (정의되지 않은 순서로!).

primes = {2, 3, 5, 7, 11}
for num in primes:
    print(num)

in 키워드 in 사용하여 요소가 집합에 속하는지 여부를 확인할 수 있습니다 a in A 와 같은 표현식은 bool 유형의 값을 반환합니다. 마찬가지로 반대의 작업이 not in . 세트에 요소를 추가하려면 add 메소드가 add .

A = {1, 2, 3}
print(1 in A, 4 not in A)
A.add(4)

세트에서 요소를 제거하는 두 가지 방법이 있습니다 : discardremove . 그들의 행동은 삭제 된 항목이 세트에없는 경우에만 달라집니다. 이 경우, 메소드 discard 는 아무것도 실행하지 않고, 메소드 remove 는 예외 KeyError throw합니다.

마지막으로 pop 은 세트에서 하나의 임의의 요소를 제거하고 그 값을 리턴합니다. 세트가 하늘의 경우, popKeyError 예외를 생성합니다.

함수 list 사용하여 집합을 목록으로 변환 할 수 있습니다.

4. 세트 작업

이것은 파이썬에서 잘 알려진 작업을 수행하는 방법입니다 :

A | 비
A. 연합 (B)
세트 AB 의 합집합 인 세트를 리턴합니다.
A | = B
A. 업데이트 (B)
배열 B 의 모든 요소를 ​​집합 A 추가합니다.
A & B
A. 교차 (B)
세트 AB 의 교집합 인 세트를 리턴합니다.
A = B
A.intersection_update (B)
세트 A 잎 세트 B 속하는 아이템.
A - B
A. 차이 (B)
AB 의 차 집합 ( A 포함 된 요소이지만 B 포함되지 않은 요소)을 반환합니다.
A - = B
A. 차이점 갱신 (B)
세트 A 에서 B 모든 요소를 ​​제거합니다.
A ^ B
대칭 오차 (B)
세트 AB ( A 또는 B 에 속하지만 동시에 두 세트에 속하지 않는 요소)의 대칭 차이를 구합니다.
A ^ = B
대칭 _ 차이 _ 업데이트 (B)
A 에 집합 AB 의 대칭 차이를 씁니다.
A <= B
A.issubset (B)
AB 의 부분 집합 true 반환 true .
A> = B
A. 세트 (B)
BA 의 부분 집합 true 반환 true .
A <B
A <= B and A != B 같습니다 A <= B and A != B
A> B
A >= B and A != B 같습니다 A >= B and A != B