set

문제 신고 소스 보기 Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

실험용 이 API는 실험용이며 언제든지 변경될 수 있습니다. 이에 의존하지 마세요. --experimental_enable_starlark_set를 설정하여 실험적으로 사용 설정할 수 있습니다.

변경 가능한 기본 제공 집합 유형입니다. 집합 표현식 예시:

x = set()           # x is an empty set
y = set([1, 2, 3])  # y is a set with 3 elements
3 in y              # True
0 in y              # False
len(x)              # 0
len(y)              # 3

불리언 컨텍스트에서 사용되는 세트는 비어 있지 않은 경우에만 true입니다.

s = set()
"non-empty" if s else "empty"  # "empty"
t = set(["x", "y"])
"non-empty" if t else "empty"  # "non-empty"

집합의 요소는 해싱 가능해야 합니다. x가 사전의 키로 사용될 수 있는 경우에만 x가 집합의 요소가 될 수 있습니다.

집합 자체는 해싱할 수 없습니다. 따라서 다른 집합을 요소로 포함하는 집합을 가질 수 없습니다.

세트의 요소에 색인으로 액세스할 수는 없지만 요소를 반복할 수 있으며 list() 내장 함수를 사용하여 반복 순서로 세트의 요소 목록을 가져올 수 있습니다. 목록과 마찬가지로 세트를 반복하는 동안 세트를 변경하면 오류가 발생합니다. 반복 순서는 게재 신청서와 일치합니다.

s = set([3, 1, 3])
s.add(2)
# prints 3, 1, 2
for item in s:
    print(item)
list(s)  # [3, 1, 2]

집합 st가 동일한 요소를 포함하는 집합(반복 순서가 다를 수 있음)인 경우에만 t와 같습니다. 특히 세트는 요소 목록과 not 같습니다.

집합은 순서가 지정되지 않습니다. Python과 달리 <, <=, >, >= 연산은 집합에 정의되지 않으며 집합 목록은 정렬할 수 없습니다.

두 집합에 대한 | 연산은 두 집합의 합집합을 반환합니다. 즉, 원래 집합 중 하나 또는 둘 다에 있는 요소가 포함된 집합입니다. | 작업에는 증강 할당 버전이 있습니다. s |= tt의 모든 요소를 s에 추가합니다.

set([1, 2]) | set([3, 2])  # set([1, 2, 3])
s = set([1, 2])
s |= set([2, 3, 4])        # s now equals set([1, 2, 3, 4])

두 집합에 대한 & 연산은 두 집합의 교집합을 반환합니다. 즉, 두 원래 집합 모두에 있는 요소만 포함된 집합입니다. & 작업에는 증강 할당 버전이 있습니다. s &= tt에 없는 모든 요소를 s에서 삭제합니다.

set([1, 2]) & set([2, 3])  # set([2])
set([1, 2]) & set([3, 4])  # set()
s = set([1, 2])
s &= set([0, 1])           # s now equals set([1])

두 집합에 대한 - 연산은 두 집합의 차이를 반환합니다. 즉, 왼쪽 집합에는 있지만 오른쪽 집합에는 없는 요소가 포함된 집합입니다. - 작업에는 증강 할당 버전이 있습니다. s -= tt에 있는 모든 요소를 s에서 삭제합니다.

set([1, 2]) - set([2, 3])  # set([1])
set([1, 2]) - set([3, 4])  # set([1, 2])
s = set([1, 2])
s -= set([0, 1])           # s now equals set([2])

두 집합에 대한 ^ 연산은 두 집합의 대칭 차를 반환합니다. 즉, 두 원래 집합 중 하나에만 있고 두 집합 모두에 없는 요소가 포함된 집합입니다. ^ 연산에는 증강 할당 버전이 있습니다. s ^= ts에 있는 t의 요소를 s에서 삭제하고 s에 없는 t의 요소를 s에 추가합니다.

set([1, 2]) ^ set([2, 3])  # set([1, 3])
set([1, 2]) ^ set([3, 4])  # set([1, 2, 3, 4])
s = set([1, 2])
s ^= set([0, 1])           # s now equals set([2, 0])

회원

추가

None set.add(element)

세트에 요소를 추가합니다.

매개변수

매개변수 설명
element required
추가할 요소입니다.

지우기

None set.clear()

집합의 모든 요소를 삭제합니다.

차이

set set.difference(*others)

이 집합과 다른 집합의 차이가 포함된 변경 가능한 새 집합을 반환합니다.

예를 들면 다음과 같습니다.

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

매개변수

매개변수 설명
others 필수
집합, 시퀀스 또는 사전

difference_update

None set.difference_update(*others)

다른 세트에서 발견된 요소를 이 세트에서 삭제합니다.

예를 들면 다음과 같습니다.

x = set([1, 2, 3, 4])
x.difference_update([2, 3], [3, 4])
# x is now set([1])

매개변수

매개변수 설명
others 필수
집합, 시퀀스 또는 사전

삭제

None set.discard(element)

세트에 있는 경우 세트에서 요소를 삭제합니다.

매개변수

매개변수 설명
element required
삭제할 요소입니다.

교집합

set set.intersection(*others)

이 집합과 다른 집합의 교집합을 포함하는 변경 가능한 새 집합을 반환합니다.

예를 들면 다음과 같습니다.

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

매개변수

매개변수 설명
others 필수
집합, 시퀀스 또는 사전

intersection_update

None set.intersection_update(*others)

이 세트에서 다른 세트에서 찾을 수 없는 요소를 삭제합니다.

예를 들면 다음과 같습니다.

x = set([1, 2, 3, 4])
x.intersection_update([2, 3], [3, 4])
# x is now set([3])

매개변수

매개변수 설명
others 필수
집합, 시퀀스 또는 사전

isdisjoint

bool set.isdisjoint(other)

이 집합에 다른 집합과 공통된 요소가 없으면 true를 반환합니다.

예를 들면 다음과 같습니다.

set([1, 2]).isdisjoint([3, 4]) == True
set().isdisjoint(set()) == True
set([1, 2]).isdisjoint([2, 3]) == False

매개변수

매개변수 설명
other 필수
집합, 시퀀스 또는 사전입니다.

issubset

bool set.issubset(other)

이 집합이 다른 집합의 하위 집합인 경우 true를 반환합니다.

예를 들면 다음과 같습니다.

set([1, 2]).issubset([1, 2, 3]) == True
set([1, 2]).issubset([1, 2]) == True
set([1, 2]).issubset([2, 3]) == False

매개변수

매개변수 설명
other 필수
집합, 시퀀스 또는 사전입니다.

issuperset

bool set.issuperset(other)

이 집합이 다른 집합의 상위 집합인 경우 true를 반환합니다.

예를 들면 다음과 같습니다.

set([1, 2, 3]).issuperset([1, 2]) == True
set([1, 2, 3]).issuperset([1, 2, 3]) == True
set([1, 2, 3]).issuperset([2, 3, 4]) == False

매개변수

매개변수 설명
other 필수
집합, 시퀀스 또는 사전입니다.

unknown set.pop()

집합의 첫 번째 요소를 삭제하고 반환합니다. 집합이 비어 있으면 실패합니다.

삭제

None set.remove(element)

세트에 있어야 하는 요소를 세트에서 삭제합니다. 요소가 세트에 없으면 실패합니다.

매개변수

매개변수 설명
element required
삭제할 요소입니다.

symmetric_difference

set set.symmetric_difference(other)

이 집합과 다른 집합, 시퀀스 또는 사전의 대칭 차집합을 포함하는 새 변경 가능한 집합을 반환합니다.

예를 들면 다음과 같습니다.

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

매개변수

매개변수 설명
other 필수
집합, 시퀀스 또는 사전입니다.

symmetric_difference_update

None set.symmetric_difference_update(other)

이 집합과 다른 집합, 시퀀스 또는 사전의 대칭 차집합을 포함하는 새 변경 가능한 집합을 반환합니다.

예를 들면 다음과 같습니다.

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

매개변수

매개변수 설명
other 필수
집합, 시퀀스 또는 사전입니다.

합집합

set set.union(*others)

이 집합과 다른 집합의 합집합을 포함하는 새로운 변경 가능한 집합을 반환합니다.

예를 들면 다음과 같습니다.

set([1, 2]).union([2, 3, 4], [4, 5]) == set([1, 2, 3, 4, 5])

매개변수

매개변수 설명
others 필수
집합, 시퀀스 또는 사전

update

None set.update(*others)

다른 세트에서 찾은 요소를 이 세트에 추가합니다.

예를 들면 다음과 같습니다.

x = set([1, 2])
x.update([2, 3], [3, 4])
# x is now set([1, 2, 3, 4])

매개변수

매개변수 설명
others 필수
집합, 시퀀스 또는 사전