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)
A
와 B
가 같은 세트이기 때문에 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)
세트에서 요소를 제거하는 두 가지 방법이 있습니다 : discard
및 remove
. 그들의 행동은 삭제 된 항목이 세트에없는 경우에만 달라집니다. 이 경우, 메소드 discard
는 아무것도 실행하지 않고, 메소드 remove
는 예외 KeyError
throw합니다.
마지막으로 pop
은 세트에서 하나의 임의의 요소를 제거하고 그 값을 리턴합니다. 세트가 하늘의 경우, pop
는 KeyError
예외를 생성합니다.
함수 list
사용하여 집합을 목록으로 변환 할 수 있습니다.
4. 세트 작업
이것은 파이썬에서 잘 알려진 작업을 수행하는 방법입니다 :
A | 비 A. 연합 (B) | 세트 A 와 B 의 합집합 인 세트를 리턴합니다. |
A | = B A. 업데이트 (B) | 배열 B 의 모든 요소를 집합 A 추가합니다. |
A & B A. 교차 (B) | 세트 A 와 B 의 교집합 인 세트를 리턴합니다. |
A = B A.intersection_update (B) | 세트 A 잎 세트 B 속하는 아이템. |
A - B A. 차이 (B) | A 와 B 의 차 집합 ( A 포함 된 요소이지만 B 포함되지 않은 요소)을 반환합니다. |
A - = B A. 차이점 갱신 (B) | 세트 A 에서 B 모든 요소를 제거합니다. |
A ^ B 대칭 오차 (B) | 세트 A 와 B ( A 또는 B 에 속하지만 동시에 두 세트에 속하지 않는 요소)의 대칭 차이를 구합니다. |
A ^ = B 대칭 _ 차이 _ 업데이트 (B) | A 에 집합 A 와 B 의 대칭 차이를 씁니다. |
A <= B A.issubset (B) | A 가 B 의 부분 집합 true 반환 true . |
A> = B A. 세트 (B) | B 가 A 의 부분 집합 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 |