Python- {세트}의 생성, 추가, 제거,복사, 집합연산

이공·2023년 9월 14일
0

파이썬

목록 보기
10/10
post-thumbnail

사실 세트는 이전에 작성한 글입니다. 오류로 인해 같은 게시글이 3개가 올라가고 하나를 지우면 모두 지워지는 참사가 있었습니다. 무려 두번이나요. 세트는 중복이 없는 자료구조인데 글은 중복이 있는 자료구조였네요. 게다가 지우고 다시 올리고 하는 바람에 순서도 엉뚱해졌습니다. 영원히 세트에 관련해서 헷갈리지 않을 것 같습니다. 이 글을 보시는 모든 분들도 제 이 어이없는 상황을 기억하고 세트는 중복이 없으며 순서도 없는 자료구조인 점을 기억하면 이 경험이 더더욱 값질겁니다.

세트

세트(set)는 중복되지 않는 항목들의 컬렉션입니다.들어가있는 요소들은 절대 중복되지 않습니다. set은 인덱스 x, 순서가 없습니다. 때문에 원하는 값을 찾는 것이 어렵습니다. 순서가 중요한 데이터는 set으로 구성하면 안됩니다.

1.생성

세트는 중괄호 {}를 사용하여 생성하거나 set() 생성자를 사용할 수 있습니다. 빈 중괄호{}나 1개의 값만 있는 {}를 사용히면 세트가 만들어지지 않습니다.

2. 메서드 - 추가, 제거 복사

add

요소를 추가하는 메서드입니다.

update(넣을값)

세트에 여러 항목을 한번에 추가하는 메서드입니다. in-place 연산을 수행하여 자동저장됩니다.

remove()

세트의 항목을 제거합니다. 만약 그 항목이 세트에 없으면 KeyError가 발생합니다. in-place 연산을 수행하여 자동저장됩니다.

discard()

세트의 항목을 제거합니다. 제거할 항목이 없어도 에러가 발생하지 않습니다. in-place 연산을 수행하여 자동저장됩니다.

copy()

세트를 복사합니다. 깊은 복사가 가능합니다. 즉, 서로 다른 메모리 공간을 바라보게 만들어 복사한 값을 변경해도 이전 값에 영향을 주지 않습니다.

3. 집합연산

세트는 중복값이 없기에 집합연산을 할때 유용하게 쓰입니다.

union()

두 세트의 합집합을 반환합니다.

intersection()

두 세트의 교집합을 반환합니다.

difference()

두 세트의 차집합을 반환합니다.

symmetric_difference()

두 세트의 합집합 - 교집합입니다. 즉, 여집합을 의미합니다.

profile
인공지능 / 데이터분석

0개의 댓글