tuple은 리스트와 비슷하게 생겼지만 변동이 불가한 기능이다
numlist = [1, 2, 3]
numtuple = (1, 2, 3)
이런 표기이고 차이점은, 튜플은 소괄호로 쓴다는 것
n1 = (1, 2, 3)
n2 = (4, 5, 6)
n3 = n1 + n2
n3의 출력값은 (1, 2, 3, 4, 5, 6)이다
(리스트도 마찬가지임)
연산을 하고싶다면, 리스트와 같이 인덱싱[n]을 써야함
리스트에서 사용가능한
.pop , .append , del 사용 불가
리스트에는 값을 변경, 추가, 제거가 가능하나 튜플은 불가하다(immutable)
list와 비슷하나, 이건 값의 중복을 허용하지 않는 형태를 띈다
리스트에서 사용가능한 indexing 추출이 불가하다 list[2] (두번째 값 추출하는 것)
데이터 추가는 가능하다 다만, append가 아닌 set()을 쓴다
추가적으로 pop같은 느낌의 .add 함수가 있고,
del 과 같은 .remove가있다
numset = {1, 2, 3, 4, 5, 4, 3, 2, 1}
numlist = [1, 2, 3, 4, 5, 4, 3, 2, 1]
print(type(numlist),numlist)
print(type(numset),numset)
print(numlist[2])
# print(numset[2]) # set은 indexing이 불가능하다
numset = set()
numset.add(1) # set에는 데이터를 추가하는 함수가 있다 (순서가 아닌 데이터를 끄집어내오는 느낌 pop같은 거)
numset.add(2)
numset.add(3)
print(type(numset),numset)
numset.remove(2)
print(type(numset),numset)
numset = set() numset 에 리스트 처럼 set()으로 담을거다
numset.add(1) numset 안에있는 .add "1"의 값을 불러온다
.
.
.
print(type(numset),numset) numset의 타입을 출력,
그리고 numset의 결과값 출력 (4와 5를 제외한 1,2,3 만 나옴
numset.remove(2) numset 안에 있는 "2" 의 값을 제거
print(type(numset),numset) 2의 값이 제거되고 1 , 3 만 추출됨
<class 'list'> [1, 2, 3, 4, 5, 4, 3, 2, 1]
<class 'set'> {1, 2, 3, 4, 5}
3
<class 'set'> {1, 2, 3}
<class 'set'> {1, 3}
set1 = set([1, 2, 3, 4, 5])
set2 = set('hello')
set3 = set(range(1, 20, 3))
# 1) 교집합 동일한 숫자
print('교집합',set1 & set3)
print('교집합',set1.intersection(set3))
# 2) 합집합 전부다 추출
print('합집합',set1 | set3)
print('합집합',set1.union(set3))
# 3) 차집합 양쪽에 없는 거
print('차집합',set1 - set3)
print('차집합',set1.difference(set3))
set을 이용하는 이유는? 일단 지금은 중복제거를 위한 것이다 라는 것 뿐이다.