Set
집합
set 생성
중괄호 { } 사용
set_name = {elements}
위와 같이 중괄호 안에 요소를 입력하여 생성
예시 )
set1 = {1,2,3}
set2 = {123}
set3 = {'air'}
print (set1)
# {1,2,3}
print (set2)
# {123}
print (set3)
# {'air'}
set ( ) 함수 사용
괄호 안에 요소들을 입력하여 set을 만들 수 있음
- set함수 안에 iterable이 들어와야함
- iterable의 예 : list, str, tuple
set_name = set(iterable)
- set함수 안에 str을 이용하여 set을 만든 경우와, 중괄호에 str을 입력하여 set을 만든 경우에 다른 결과가 도출됨
아래의 예시 참고
set_1 = set([1,2,3])
set_2 = set(123)
set_3 = set('air')
print (set_1)
# {1,2,3}
# iterable인 list가 들어와서 set 함수 적용 가능
print (set_2)
# TypeError: 'int' object is not iterable
# 숫자 데이터는 iterable이 아니므로 set 함수안에 들어갈 수 없음
print (set_3)
# {'i','a',r'}
# str은 iterable
# 중괄호를 사용해서 set을 만들었을 때와 다른 결과가 나옴
set 특징
- 여러가지 요소들을 저장 할 수 있음
- 요소들이 순서대로 저장되지 않음
- for문으로 set을 가져올 때 요소가 무작위 순서로 나옴
- indexing,slicing 등 없음
예시)
a = set('abcde')
b = {'a','b','c','d','e'}
d = set([1,2,3,4])
print (a)
# {'d', 'c', 'b', 'e', 'a'}
# 순서대로 저장되지 않음
print (b)
# {'d', 'a', 'c', 'b', 'e'}
# 순서대로 저장되지 않음
for c in b :
print (c)
# d
# a
# c
# b
# e
# for문으로 set을 가져올 때 요소 무작위 순서로 나옴
print (d[0])
# TypeError: 'set' object does not support indexing
# indexing 없음
- 중복된 값을 저장할 수 없음
예시)
set_a = {123,123}
set_b = set([123,123])
set_c = set('apple')
print (set_a)
# {123}
print (set_b)
# {123}
print (set_c)
# {'e', 'l', 'p', 'a'}
- 중복값이 없으므로 만약 새로 저장하려고 하는 요소와 동일한 값의 요소가 존재하면, 새로운 요소가 이 전의 요소를 replace
set 요소 추가
add 메서드 이용
append는 사용 불가
아래의 예시와 같이 사용 - 한개의 값만 추가 가능
a= {1,2,3,4}
a.add(5)
print (a)
# {1, 2, 3, 4, 5}
a.add("100")
print (a)
# {1, 2, 3, 4, 5, '100'}
a.append(10)
# AttributeError: 'set' object has no attribute 'append'
# append는 사용 불가능
update 메서드 이용
여러개의 값을 한번에 추가 가능
.update(iterable)
e= {1,2,3,4}
e.update([100,150])
print (e)
# {1, 2, 3, 100, 4, 150}
주의
update에서는 괄호 안에 입력할 수 있는 종류가 다르기 때문에 주의 필요
또한 괄호안에 같은 str이 들어가도 결과가 다음
아래의 예시를 보며 확인가능
e= {1,2,3,4}
e.update(1)
# TypeError: 'int' object is not iterable
e.add([10])
# TypeError: unhashable type: 'list'
e.update('air')
print (e)
# {1, 2, 3, 4, 'i', 'a', 'r'}
e.add('air')
print (e)
# {1, 2, 3, 4, 'air'}
set 요소 삭제
remove 메서드 이용
a= {1,2,3,4}
a.remove(3)
print (a)
# {1, 2, 4}
Look up
set에 어떠한 값이 포함되어 있는지 아닌지 찾아보는 것
in 키워드 사용
아래의 예시와 같이 사용
포함되어 있으면 True/ 포함되어 있지 않으면 False
num = {1,5,3,2,6,7,9,10}
a = 5 in num
print (a)
# True
b = 8 in num
print (b)
# False
교집합
& 기호 사용
아래의 예시 참고
num = {1,2,3,4,5}
num2 = {4,5,6,7,8,9}
a = num&num2
print (a)
# {4,5}
intersection 메서드 사용
set1.intersection(set2)
num = {1,2,3,4,5}
num2 = {4,5,6,7,8,9}
a = num.intersection(num2)
print (a)
# {4,5}
합집합
| 기호 사용
중복값 제거됨
아래의 예시 참고
num = {1,2,3,4,5}
num2 = {4,5,6,7,8,9}
a = num|num2
print (a)
# {1, 2, 3, 4, 5, 6, 7, 8, 9}
union 메서드 사용
set1.union(set2)
중복값 제거됨
num = {1,2,3,4,5}
num2 = {4,5,6,7,8,9}
a = num.union(num2)
print (a)
# {1, 2, 3, 4, 5, 6, 7, 8, 9}
차집합
차집합은 - 를 이용하여 구할 수 있음
num = {1,2,3,4,5}
num2 = {4,5,6,7,8,9}
a = num-num2
b = num2-num
print (a)
# {1, 2, 3}
print (b)
# {8, 9, 6, 7}
'python > Today I Learned' 카테고리의 다른 글
Modules & Packages_1 (0) | 2020.04.04 |
---|---|
Class (2) | 2020.03.31 |
Closure & Decorator (1) | 2020.03.30 |
Scope (1) | 2020.03.30 |
CSS (0) | 2020.03.24 |
댓글