파이썬 튜토리얼-데이터 타입 세트
이 섹션에서는 Python 에서 집합을 만드는 방법과 집합에서 요소를 추가 및 제거하는 방법에 대해 설명합니다.
세트에는 ** 고유 ** 항목이 포함되며 ** 순서가없는 ** 요소 목록입니다.
set
은 변경 가능한 객체이므로 세트에서 항목을 추가하고 삭제할 수 있습니다.파이썬 세트 만들기
중괄호{}
를 사용하여 Python 의 집합을 만들 수 있으며 항목은 쉼표로 구분됩니다. 내장 메소드 set()
를 사용하여 세트를 생성 할 수도 있습니다.
세트의 요소는 다른 데이터 유형이 될 수 있습니다. 세트의 요소는 변경 불가능해야합니다. 예를 들어, 튜플을 세트의 요소로 가질 수 있지만 세트 또는 사전 또는 목록을 세트의 요소로 가질 수는 없습니다.
>>> x = {3, 5, 7, 2, 4, 5}
>>> print(x) #prints the set variable
{2, 3, 4, 5, 7}
>>> print(type(x)) #checking type of x
<class 'set'>
빈 매개 변수와 함께 set()
메서드를 사용하여 빈 목록을 만들 수 있습니다. 빈 객체를 만들기 위해{}
를 쓰면 사전으로 해석됩니다.
>>> x = {}
>>> print(type(x))
<class 'dict'>
>>> x = set()
>>> print(type(x))
<class 'set'>
파이썬 세트 업데이트
set
은 순서가 지정된 데이터 유형이 아니므로 인덱싱 및 슬라이싱을 사용하여 세트의 요소를 변경할 수 없습니다.
add()
메소드를 사용하여 단일 요소를 세트에 추가 할 수 있습니다. 세트에 하나 이상의 요소를 추가하려면 update()
메소드를 사용해야합니다.
>>> s = {2, 4}
>>> print(s)
{2, 4}
>>> s.add(6)
>>> print(s)
{2, 4, 6}
>>> s.update([2, 4, 6])
>>> print(s)
{2, 4, 6}
>>> s.update([5,6], {7, 8, 9})
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}
파이썬 세트에서 요소 제거
세트에서 요소를 제거하려면 discard()
메소드 또는 remove()
메소드를 사용할 수 있습니다.
이들 메소드의 차이점은 삭제 될 요소가 세트에 없으면 discard()
메소드가 아무 것도 프롬프트하지 않는 반면, 삭제 될 요소가 없으면 remove()
는 오류를 생성한다는 것입니다.
>>> s = {2, 4, 5, 6, 7, 8, 9}
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}
>>> s.discard(6)
>>> print(s)
{2, 4, 5, 7, 8, 9}
>>> s.remove(8)
>>> print(s)
{2, 4, 5, 7, 9}
>>> s.discard(6) #no error
>>> s.remove(8) #generated an error
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
s.remove(8)
KeyError: 8
pop()
을 사용하여 세트에서 아이템을 제거 할 수도 있습니다. pop()
은 하나의 ** 임의 ** 설정 요소를 제거하고 반환합니다.
>>> s = set("Python")
>>> s
{'o', 'n', 'h', 'P', 'y', 't'}
>>> s.pop()
o
>>> s.pop()
n
>>> s
{'h', 'P', 'y', 't'}
>>> s.clear()
>>> print(s)
set()
set.clear()
메소드를 사용하여 모든 설정 요소를 지울 수 있습니다.
>>> s = set("Python")
>>> s.clear()
>>> s
set()
파이썬 세트 연산
union
,intersection
,difference
및 symmetric_difference
와 같은 작업을 수행 할 수 있습니다.
x
와 y
의 두 세트가 있다고 가정 해 봅시다.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 10, 11, 12}
노동 조합
두 세트의 합집합은 두 세트의 모든 요소를 포함하는 새 세트를 생성합니다.
공용 연산을 수행하려면|
연산자 또는 union()
메소드를 사용할 수 있습니다.
>>> print(x | y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#using union() method on x
>>> x.union(y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#union on y
>>> y.union(x)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
파이썬 세트 교차
두 세트의 교집합은 두 세트에서 공통 인 항목을 포함하는 새로운 세트를 생성합니다.
교차 연산을 수행하려면&
연산자 또는 intersection()
메소드를 사용할 수 있습니다.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x & y)
{1, 2, 6}
#using intersection() method on x
>>> x.intersection(y)
{1, 2, 6}
#intersection on y
>>> y.intersection(x)
{1, 2, 6}
파이썬 세트 차이
두 세트의 차이로 인해 두 번째 세트에없는 첫 번째 세트의 요소가 포함 된 새 세트가 생성됩니다.
예를 들어,x-y
는 y
가 아닌 x
의 요소입니다. 마찬가지로 y-x
는 x
가 아닌 y
의 요소입니다.
차이를 수행하려면-
연산자 또는 difference()
메소드를 사용할 수 있습니다.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x - y)
{3, 4, 5}
#using difference() method on x
>>> x.difference(y)
{3, 4, 5}
#diference on y
>>> y.difference(x)
{8, 9, 7}
파이썬 세트 대칭 차이
두 세트의 대칭 적 차이로 인해 두 세트에서 공통적이지 않은 요소가 포함 된 새 세트가 생성됩니다.
대칭 적 차이를 수행하려면^
연산자 또는 symmetric_difference()
메소드를 사용할 수 있습니다.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x ^ y)
{3, 4, 5, 7, 8, 9}
#using symmetric_difference() method on x
>>> x.symmetric_difference(y)
{3, 4, 5, 7, 8, 9}
#symmetric_diference on y
>>> y.symmetric_difference(x)
{3, 4, 5, 7, 8, 9}
파이썬 세트 메소드
다음은 Python 세트에 적용 할 수있는 메소드 목록입니다.
방법 | 기술 |
---|---|
add() |
세트에 요소를 추가 |
clear() |
세트의 요소를 지우십시오 (전체 세트를 지 웁니다) |
copy() |
세트의 복사본을 반환 |
차이() |
두 번째 세트에없는 첫 번째 세트의 요소를 포함하는 새 세트를 리턴합니다. |
difference_update() |
현재 세트에서 다른 세트의 모든 요소를 제거 |
discard() |
세트에서 특정 요소를 제거 |
교차() |
두 세트에서 공통적 인 항목이 포함 된 새 세트를 반환합니다. |
intersection_update() |
이 세트와 다른 세트의 교차로 세트를 업데이트하십시오. |
isdisjoint() |
두 세트가 널 교차를 초래할 때 ‘참’을 리턴합니다. |
issubset() |
다른 세트에 현재 세트가 있으면 True 를 반환합니다. |
issuperset() |
현재 세트에 다른 세트가 있으면 True 를 반환 |
pop() |
집합에서 요소를 반환 |
제거() |
세트에서 특정 요소를 제거하십시오. 요소가 세트에 없으면 오류가 생성됩니다. |
symmetric_difference() |
두 세트에서 공통적이지 않은 요소를 포함하는 새로운 세트를 반환합니다. |
symmetric_difference_update() |
이 세트의 대칭 차이가있는 세트를 다른 세트로 업데이트 |
연합() |
두 세트의 모든 요소를 포함하는 새로운 세트를 반환합니다. |
update() |
이 세트를 다른 세트와 결합하여 세트를 업데이트하십시오. |
다른 파이썬 세트 연산
회원 확인 설정
in
키워드는 아이템이 세트의 멤버인지 아닌지를 테스트합니다.
>>> s = set("Blue")
>>> print('o' in s)
False
>>> print('l' in s)
True
집합을 반복
for
루프를 사용하여 세트를 반복 할 수 있습니다.
for i in set("Blue"):
print(i)
결과:
B
l
u
e
파이썬 내장 함수
다음은 다른 작업을 수행하기 위해 세트와 함께 사용할 수있는 일부 내장 기능입니다.
기능 | 기술 |
---|---|
all() |
세트의 모든 요소가 ‘참’이면 ‘참’을 반환합니다. 또한 집합이 비어 있으면 ‘참’을 반환합니다. |
any() |
세트의 요소 중 하나라도 True 이면 True 를 리턴합니다. 집합이 비어 있으면 False 를 반환합니다. |
enumerate() |
집합의 모든 요소의 색인과 값을 튜플로 반환합니다. 열거 객체를 돌려줍니다. |
len() |
세트 내의 아이템 수 또는 세트의 길이를 돌려줍니다. |
set() |
세트를 정의하십시오. |
max() |
세트의 최대 항목을 반환합니다. |
분() |
세트의 최소 항목을 반환합니다. |
정렬() |
세트의 요소의 정렬 된리스트를 돌려줍니다. |
sum() |
세트의 모든 요소의 합계를 돌려줍니다. |
파이썬 프로즌 셋
고정 세트는 한 번 할당 될 때 요소를 업데이트 할 수없는 특수 세트입니다. 냉동 세트는 변경할 수없는 세트입니다.
세트는 변경 가능하므로 사전에서 키로 사용할 수 없지만 고정 된 세트는 변경할 수 없으므로 고정 된 세트를 사전 키로 사용할 수 있습니다.
고정 세트는 frozenset()
메소드를 사용하여 만들 수 있습니다.
다음은 frozenset 에서 지원하는 몇 가지 방법입니다.
복사()
차이()
교차()
isdisjoint()
issubset()
issuperset()
symmetric_difference()
유니온()
>>> x = frozenset([2,6,3,9])
>>> y = frozenset([6,1,2,4])
>>> x.difference(y)
frozenset({9, 3})
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook