Python

[Python] 파이썬 집합 | set()

pyflu 2023. 10. 31. 12:55

파이썬의 집합(set)은 중복을 허용하지 않고 고유한 원소들로 이루어진 컬렉션입니다. 집합은 중괄호 {}를 사용하여 정의하며, 리스트나 튜플과는 달리 순서가 없습니다. 집합은 원소들 간의 관계를 파악하고 고유한 값들을 저장할 때 유용하며, 집합 연산을 지원하여 데이터 처리를 간편하게 만듭니다.

 

 

파이썬-집합-set()
파이썬-집합-set()


 
ㅡㅡㅡㅡㅡㅡㅡ목차ㅡㅡㅡㅡㅡㅡㅡ

 
 
 
1. 집합 | set() 개념 및 사용 방법
 
2. 집합 | set() 메서드

  1. add() - 하나의 원소를 집합에 추가
  2. remove() - 집합에서 원소 제거
  3. union() - 두 집합의 합집합 반환
  4. intersection() - 두 집합의 교집합 반환
  5. difference() - 두 집합의 차집합 반환
  6. update() - 여러 원소를 집합에 추가
  7. clear() - 모든 원소를 집합에서 제거
  8. discard() - 집합에서 원소를 제거, 해당 원소가 없을 시 동작 미실행
  9. copy() - 집합의 복사본 반환

3. 집합 | set() 활용 예제

  1. 교집합, 합집합, 차집합 구하기
  2. 리스트에서 중복된 원소 제거
  3. 두 리스트의 중복된 원소 찾기

 


1. 집합 | set() 개념 및 사용 방법

- 파이썬의 집합(set)은 중복된 값을 허용하지 않는 자료구조로, 고유한 값들을 저장합니다.

- 집합은 순서가 없기 때문에 인덱스를 사용하여 원소에 접근할 수 없습니다.

# 중괄호를 사용하여 집합 생성
my_set = {1, 2, 3}
print(my_set) # 출력: {1, 2, 3}

# set() 함수를 사용하여 집합 생성
my_set = set([1, 2, 3])
print(my_set) # 출력: {1, 2, 3}
# 중괄호를 사용하여 집합 생성
my_set = {1, 2, 3}
print(my_set) # 출력: {1, 2, 3}

# set() 함수를 사용하여 집합 생성
my_set = set([1, 2, 3])
print(my_set) # 출력: {1, 2, 3}

2. 집합 | set() 메서드

2.1 add()

- 하나의 원소를 집합에 추가합니다.

s = set()
s.add(1)
print(s)  # 출력: {1}
s = set()
s.add(1)
print(s)  # 출력: {1}

 

 

2.2. remove()

- 집합에서 원소를 제거합니다.

- 만약 해당 원소가 집합에 없다면 KeyError를 발생시킵니다.

s = {1, 2, 3}
s.remove(2)
print(s)  # 출력: {1, 3}
s = {1, 2, 3}
s.remove(2)
print(s)  # 출력: {1, 3}

 

 

2.3 union()

- 두 집합의 합집합을 반환합니다.

- union() 대신 '|' 사용 가능

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.union(s2))  # 출력: {1, 2, 3, 4}

s3 = s1 | s2
print(s3)  # 출력: {1, 2, 3, 4}
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.union(s2))  # 출력: {1, 2, 3, 4}

s3 = s1 | s2
print(s3)  # 출력: {1, 2, 3, 4}

 

 

2.4 intersection()

- 두 집합의 교집합을 반환합니다.

- intersection() 대신 '&' 사용 가능

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.intersection(s2))  # 출력: {2, 3}

s3 = s1 & s2
print(s3)  # 출력: {2, 3}
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.intersection(s2))  # 출력: {2, 3}

s3 = s1 & s2
print(s3)  # 출력: {2, 3}

 

 

2.5 difference()

- 첫 번째 집합에서 두 번째 집합의 원소를 제거한 차집합을 반환합니다.

- difference() 대신 '-' 사용 가능

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.difference(s2))  # 출력: {1}

s3 = s1 - s2
print(s3)  # 출력: {1}
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.difference(s2))  # 출력: {1}

s3 = s1 - s2
print(s3)  # 출력: {1}

 

 

2.6 update()

- 여러 원소를 집합에 추가합니다.

s = {1, 2, 3}
s.update([4, 5])
print(s)  # 출력: {1, 2, 3, 4, 5}
s = {1, 2, 3}
s.update([4, 5])
print(s)  # 출력: {1, 2, 3, 4, 5}

 

 

2.7 clear()

- 모든 원소를 집합에서 제거합니다.

s = {1, 2, 3}
s.clear()
print(s)  # 출력: set()
s = {1, 2, 3}
s.clear()
print(s)  # 출력: set()

 

 

2.8 discard()

- 집합에서 원소를 제거합니다. (단, 해당 원소가 집합에 없을 시 동작을 수행하지 않음)

s = {1, 2, 3}
s.discard(4)
print(s)  # 출력: {1, 2, 3}
s = {1, 2, 3}
s.discard(4)
print(s)  # 출력: {1, 2, 3}

 

 

2.9 copy()

- 집합의 복사본을 반환합니다.

s = {1, 2, 3}
s_copy = s.copy()
print(s_copy)  # 출력: {1, 2, 3}
s = {1, 2, 3}
s_copy = s.copy()
print(s_copy)  # 출력: {1, 2, 3}

 

 


3. 집합 | set() 활용 예제

3.1. 교집합, 합집합, 차집합 구하기

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

# 교집합
print(a & b)  # 출력: {3, 4}

# 합집합
print(a | b)  # 출력: {1, 2, 3, 4, 5, 6}

# 차집합
print(a - b)  # 출력: {1, 2}
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

# 교집합
print(a & b)  # 출력: {3, 4}

# 합집합
print(a | b)  # 출력: {1, 2, 3, 4, 5, 6}

# 차집합
print(a - b)  # 출력: {1, 2}

 

 

3.2. 리스트에서 중복된 원소 제거

a = [1, 2, 2, 3, 4, 4, 5]
b = list(set(a))
print(b)  # 출력: [1, 2, 3, 4, 5]
a = [1, 2, 2, 3, 4, 4, 5]
b = list(set(a))
print(b)  # 출력: [1, 2, 3, 4, 5]

 

 

3.3. 두 리스트의 중복된 원소 찾기

list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
list3 = list(set(list1) & set(list2))
print(list3) # 출력: [3, 4]
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
list3 = list(set(list1) & set(list2))
print(list3) # 출력: [3, 4]
728x90