SetCoding Practice/Python2024. 7. 19. 15:34
Table of Contents
파이썬에서 집합을 다룰 일이 생긴다면 어떤 함수를 써야할까?
바로 Set함수이다.
Set함수는 기본적으로 제공되는 함수라 따로 라이브러리에서 import할 필요는 없다.
그럼 본격적으로 알아보자!
List to Set
집합을 어떻게 만들어야하는지는 간단하다.
List에 set()
함수를 사용하기만 하면 된다.
s1 = set([1, 2, 3])
print(s1)
#{1, 2, 3}
set 자료형의 특징은 중복
과 순서
가 없다는 것이다.
List 나 tuple의 경우 순서가 있어 인덱싱(indexing)이 가능하나, set은 불가능하다.
인덱싱이 필요하다면 list()
나 tuple()
함수를 통해 다시 변환을 먼저 해줘야한다.
집합은 왜 사용할까?
당연하게도, 대부분의 경우 교집합, 합집합, 차집합이 필요한 경우에 많이 사용하게 된다.
각 예시를 위해 다음과 같은 set이 있다고 가정하자.
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
교집합
s1 & s2
s1.intersection(s2)
s2.intersection(s1)
#{4, 5, 6}
3가지 코드 결과 모두 동일하기에, 편한 것으로 사용하면 된다.
합집합
s1 | s2
s1.union(s2)
s2.union(s1)
#{1, 2, 3, 4, 5, 6, 7, 8, 9}
역시 3가지 코드 결과는 동일하므로 편한 것으로 사용하면 된다.
차집합
s1 - s2
s1.difference(s2)
#{1, 2, 3}
s2 - s1
s2.difference(s1)
#{8, 9, 7}
어느 집합을 기준으로 할 것인가에 따라 결과가 달라지기에 기준 집합을 잘 고려해서 사용하면 된다.
값 1개 추가
set에 값을 1개 추가하고자 할 때는 add 함수를 사용하면 된다.
s1 = set([1, 2, 3])
s1.add(4)
#{1, 2, 3, 4}
값 여러 개 추가
add는 1개의 값만 추가할 수 있다.
여러 개의 값을 추가하고 싶을 때는 update 함수를 사용해야 한다.
s1 = set([1, 2, 3])
s1.update([4, 5, 6])
#{1, 2, 3, 4, 5, 6}
특정 값 제거
특정 값을 set에서 제거하고 싶을 때는 remove 함수를 사용하면 된다.
s1 = set([1, 2, 3])
s1.remove(2)
#{1, 3}
'Coding Practice > Python' 카테고리의 다른 글
List - 요소 별 Count (0) | 2024.07.16 |
---|---|
Data Frame - to_list(), tolist() (0) | 2024.07.13 |
Data Frame - 읽기, 저장, 전체 출력 (0) | 2024.07.10 |
Dictionary Slicing (0) | 2024.04.04 |
파이썬 .txt 읽기 - readline(), readlines(), read(), strip() (2) | 2024.02.28 |