05. set
집합 ( set )
- 중복이 없는 요소로 구성된 collection 입니다.
- 순서나 key 가 사용되지 않고, 값 만이 저장되어 있기 때문에 어떠한 요소가 있고 없고만 알 수 있습니다.
- set 은 { } 를 사용해서 생성됩니다.
- set 은 순서가 없기 때문에, 값 확인시 순서가 바뀔 수 있습니다.
-
set 생성
set_1 = { } -> Error. { } 만을 사용해서 빈 set 을 생성할 수 없습니다.
set_1 = {1, 2, 3, 4, 5}
print(f"set_1 {set_1} - type : {type(set_1)}")
print()

set_2 = set()
print(f"set_2 {set_2} - type : {type(set_2)}")
print()

set() 생성자에 하나의 문자열을 저장하면 한글자씩 분리되어 set 에 저장됩니다.
stn_set = set("word")
print(f"stn_set {stn_set}")
print()

중복 값이 있으면 하나만 저장됩니다.
str_set = set("Good")
print(f"str_set {str_set}")
print()

value_list = [10, 20, 30, 10]
print(f"value_list {value_list}")
value_set = set(value_list)
print(f"value_set {value_set}")
print()

집합 연산
s1_set = { 1, 3, 5, 7, 9}
s2_set = { 3, 8, 9, 1, 5}
print(f"s1_set {s1_set}")
print(f"s2_set {s2_set}")
print()

교집합
i_data = s1_set & s2_set
print(f"s1_set, s2_set 교집합 {i_data}")
i_data2 = s1_set.intersection(s2_set)
print(f"s1_set, s2_set 교집합 {i_data2}")
print()

-
합집합
u_data = s1_set | s2_set
print(f"s1_set, s2_set 합집합 {u_data}")
u_data2 = s1_set.union(s2_set)
print(f"s1_set, s2_set 합집합 {u_data2}")
print()

-
차집합
d_data = s1_set - s2_set
print(f"s1_set, s2_set 차집합 {d_data}")
d_data2 = s1_set.difference(s2_set)
print(f"s1_set, s2_set 차집합 {d_data2}")
print()

추가
no_set = {1, 2, 3, 4, 5}
print(f"no_set {no_set}")
print()

.add( value )
no_set.add(7)
print(f"no_set {no_set}")
print()

.update( ) : 여러개의 값 추가
no_set.update([8, 9, 10])
print(f"no_set {no_set}")
print()

특정 값 제거
.remove( value )
no_set.remove(7)
print(f"no_set {no_set}")
print()

# no_set.remove(6) # 없는 값을 삭제하면 Error
전체 삭제
.clear()
no_set.clear()
print(f"no_set {no_set}")
print()
