1. 세트(Set)
세트(set)는 중복되지 않는 항목들의 컬렉션입니다.
컬렉션 | 생성함수 | 특징 | 예시 |
리스트 | list() | 추가, 수정, 삭제 언제나 가능 | a = [1,2,3] |
튜플 | tuple() | 생성되고 나면 변경 불가능 | a =(1,2,3) |
세트 | set() | 중복된 값의 저장 불가능 | a ={1,2,3} |
딕셔너리 | dict() | 키 + 값으로 관리 | a ={'age':25} |
1-1. 생성
{ } 중괄호로 생성하고
, 로 요소들을 구분합니다.
s1 = {}
print(s1)
print(type(s1))
{} <class 'dict'> |
ㄴ 결과는 딕셔너리 입니다.
s1 = {1, 3, 5, 7}
print(s1)
print(type(s1))
{1, 3, 5, 7} <class 'set'> |
ㄴ 자료를 넣으면 Set 이 됩니다
s2 = set([1,3,5,7])
print(s2)
print(type(s2))
{1, 3, 5, 7} <class 'set'> |
ㄴ 리스트 [ ] 에 넣고 Set에 넣어서 선언할 수 있습니다.
li1 = [1,2,3,4]
s2 = set(li1)
print(s2)
print(type(s2))
{1, 2, 3, 4} <class 'set'> |
ㄴ 리스트(list)에 넣어서 Set으로 형변환 가능합니다
s3 = { 1,3,5,3,7,9,1}
print(s3)
{1, 3, 5, 7, 9} |
ㄴ 중복된 자료를 자동으로 제거합니다.
li2= {1,3,4,3,7,9,1}
print(li2)
s4 = set(li2)
print(s4)
{1, 3, 4, 7, 9} {1, 3, 4, 7, 9} |
!! 중요한 부분 !!
Set 은 순서가 없고 인덱싱을 할 수 없습니다.
1-2. 메소드
add( )
: 세트에 요소를 추가합니다.
s1 = {100, 200}
s1.add(150)
print(s1)
s1.add(50)
print(s1)
{200, 100, 150} {200, 50, 100, 150} |
ㄴ add를 사용할 시, 어디에 추가 될지 알 수 없습니다.
remove( )
: 세트 요소를 제거, 단 요소가 없으면 에러가 발생합니다.
s1 = {10, 20, 30}
s1.remove(20)
print(s1)
{10, 30} |
discard( )
: 세트 요소를 제거, 단 요소가 없어도 에러가 발생하지 않습니다.
s1 = {10, 20, 30}
s1.discard(20)
print(s1)
s1.discard(20)
print(s1)
{10, 30} {10, 30} |
copy( )
: 세트를 복사합니다.
s1 = {10, 20, 30}
s2 = s1.copy() #s2 !=s1
print(s1)
print(s2)
print(id(s1))
print(id(s2))
133622225256512 133622224272992 |
ㄴ 복사했더라도 주소값은 다릅니다.
union( )
: 세트의 합집합
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.union(s2)
print(result1)
result2 = s1 | s2
print(result2)
{70, 40, 10, 50, 20, 60, 30} {70, 40, 10, 50, 20, 60, 30} |
ㄴ 두가지 방법 다 사용 가능합니다.
intersection( )
: 세트의 교집합
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.intersection(s2)
print(result1)
result2 = s1 & s2
print(result2)
{40, 50, 30} {40, 50, 30} |
ㄴ 두가지 방법 다 사용 가능합니다.
difference( )
: 세트의 차집합
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.difference(s2)
print(result1)
result2 = s1 - s2
print(result2)
{10, 20} {10, 20} |
ㄴ 두가지 방법 다 사용 가능합니다.
symmetric_difference( )
: 세트의 대칭차집합
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.symmetric_difference(s2)
print(result1)
result2 = s1 ^ s2
print(result2)
{20, 70, 10, 60} {20, 70, 10, 60} |
ㄴ 두가지 방법 다 사용 가능합니다.
'Python > 개념' 카테고리의 다른 글
Day 4-3. 파이썬 연산자 (0) | 2024.03.14 |
---|---|
Day 4-2. 컬렉션 타입 - 딕셔너리 (1) | 2024.03.14 |
Day 3-2. 컬렉션 타입 - 튜플 (0) | 2024.03.13 |
Day 3-1. 컬렉션 타입 - 리스트 (0) | 2024.03.13 |
Day 2-4. 과제 (0) | 2024.03.12 |