KT AIVLE SCHOOL 복습
KT AIVLE DX #1 - 데이터 다루기(3) 튜플, 집합
전쏘스
2023. 2. 27. 01:48

1. 튜플 자료형
→ 튜플은 리스트와 정말 비슷한 자료형
→ 소괄호 ()를 사용해서 표현
→ 튜플은 한 번 만들면 요소의 값을 바꿀 수 없음이 리스트와 다름
→ 튜플은 값이 변하지 않는다는 속성때문에 딕셔너리의 키로 사용될 수 있음
1) 튜플 만들기
a. 빈 튜플 만들기
변수 = tuple()
변수 = ()
b. 요소가 하나인 튜플 만들기
변수 = (값, )
c. 다양한 튜플 만들기 : 리스트와 같음
2) 튜플 활용
- 괄호를 생랼할 수 있는 튜플의 특징을 이용해 편리함을 얻을 수 있음
# 괄호 없이 튜플 만들기
a = 10
b = 20
c = a, b
# 확인
c # (10, 20)
# 여러 변수에 동시에 값 대입
a, b, c = 10, 20, 30
print('a =', a) # a = 10
print('b =', b) # b = 20
print('c =', c) # c = 30
# 여러 변수에 동시에 값 대입(튜플 포함)
a, b, c = 10, 20, (1, 2, 3)
print('a =', a) # a = 10
print('b =', b) # b = 20
print('c =', c) # c = (1, 2, 3)
# 변수 값 서로 변경
a, b = 10, 20
print('a =', a, 'b =', b) # a = 10 b = 20
a, b = b, a
print('a =', a, 'b =', b) # a = 20 b = 10
2. 집합 자료형
→ 집합 연산(교집합, 합집합, 차집합, 대칭 차집합)을 위한 자료형
→ 중복을 허용하지 않아 중복된 요소는 하나만 제외하고 무시
→ 순서의 의미가 없으므로 인덱싱으로 값을 얻을 수 없음
1) 집합 만들기
a. {} 중괄호를 이용하여 만들기
# 정수를 갖는 집합
nums = {0,1,2,3,4,5,6,7,8,9}
# 문자열을 갖는 집합
members = {'홍길동', '한사랑', '일지매', '박여인'}
# 여러 자료형을 갖는 집합
etc = {'홍길동', 100, (1,2,3), '박여인'}
b. 집합으로 자료형 변환
- set() 함수를 사용해 다른 자료형을 집합으로 변환 → 중복된 문자는 제거 됨
- 집합은 요소의 순서가 없으니 변환 후 순서가 어떻게 될 지 알 수 없음
# 문자열로 집합 만들기
hello = set('잘지내지요') # {'내', '요', '잘', '지'}
# range로 집합 만들기
nums = set(range(0, 10)) # {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
# 리스트 만들기
member = ['홍길동', '한사랑', '홍길동', '일지매', '박여인']
member1 = set(member) # {'박여인', '일지매', '한사랑', '홍길동'}
2) 집합 정보 확인
- len() 함수로 집합에 포함된 원소 개수 확인
- in 연산자로 집합에 요소가 속해 있는지 확인
3) 집합 연산
a. 합집합 : | 또는 union() 메소드
member_set3 = member_set1 | member_set2
member_set3 = member_set1.union(member_set2)
b. 교집합 : & 또는 intersection() 메소드
member_set3 = member_set1 & member_set2
member_set3 = member_set1.intersection(member_set2)
c. 차집합 : - 또는 difference() 메소드
member_set3 = member_set1 - member_set2
member_set3 = member_set1.difference(member_set2)
d. 대칭 차집합 : ^ 또는 symmetric_difference() 메소드
member_set3 = member_set1 ^ member_set2
member_set3 = member_set1.symmetric_difference(member_set2)
4) 집합 관련 메소드
a. 추가
- add(x) : x 요소 하나 추가
- update(리스트, 튜플, 딕셔너리 형태) : 여러 요소 추가
b. 삭제
- pop() : 무작위로 한 요소 삭제
- remove(x) : x 요소 삭제, 요소가 없다면 오류
- discard(x) : x 요소 삭제, 요소가 없으면 무시
- clear() : 모든 요소 삭제