튜플,set 중복제거,집합문제

gyeorrr·2023년 1월 26일
0

tuple

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)

set

  • list와 비슷하나, 이건 값의 중복을 허용하지 않는 형태를 띈다

  • 리스트에서 사용가능한 indexing 추출이 불가하다 list[2] (두번째 값 추출하는 것)

  • 데이터 추가는 가능하다 다만, append가 아닌 set()을 쓴다

추가적으로 pop같은 느낌의 .add 함수가 있고,
del 과 같은 .remove가있다

set 사용예시

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}

set를 이용한 집합

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을 이용하는 이유는? 일단 지금은 중복제거를 위한 것이다 라는 것 뿐이다.

0개의 댓글