반응형
튜플 (tuple)
튜플은 몇가지 점을 제외하곤 리스트와 거의 비슷하다.
차이점 :
- 리스트는 [대괄호], 튜플은 (소괄호)으로 둘러싼다
- 리스트는 요소값에 생성, 삭제, 수정이 가능하지만, 튜플은 바꿀 수 없다
- 튜플은 변하지 않는다
t1 = (1, 2, 'a', 'b') del t1[0] #튜플의 요소를 리스트처럼 del 함수로 지우려고 하면 오류 메시지가 뜬다 |
t1 = (1, 2, 'a', 'b') t1[0] = 'c' #리스트였다면 0번째를 c로 바꿔줬을텐데, 튜플은 변경이 불가하다 |
t1 = (1, 2, 'a', 'b') print(t1[0]) #변경은 안되지만 리스트처럼 볼 수는 있음 - 인덱싱 1 t1 = (1, 2, 'a', 'b') print(t1[1:]) #변경은 안되지만 리스트처럼 볼 수는 있음 - 슬라이싱 (2, 'a', 'b') |
튜플 더하기 t1 = (1, 2, 'a', 'b') t2 = (3, 4) t3 = t1 + t2 print(t3) (1, 2, 'a', 'b', 3, 4) |
튜플 곱하기 t2 = (3, 4) t3 = t2 * 3 print(t3) (3, 4, 3, 4, 3, 4) |
리스트와 튜플 쉽게 이해&비교하기 |
리스트 : [대괄호]를 사용하여 한번에 묶음
ㄴ 리스트를 사용하는 이유 : 각각 관리하기 번거로우니까 하나에 몰아서 사용함
리스트와 튜플의 차이점?
ㄴ 리스트는 [대괄호], 튜플은 (소괄호)으로 둘러싸서 리스팅할 수 있음
ㄴ 리스트는 새로운 값을 추가할 수 있었는데, 튜플른 추가&삭제&변경 못한다 - 튜플은 변하지 않는다(고정값)
ㄴ 튜플은 요소값 추가&삭제&변경 시 오류
(공통점) 인덱싱, 슬라이싱을 통해 리스트,튜플 둘다 값을 볼 수는 있음
딕셔너리 (dictionary)
- Hash / Map / Object / JSON : 딕셔너리 자료형
- Key를 통해 Value를 얻는다
- Key를 이용해 값을 빠르게 찾을 수 있다
- API에 자주 활용된다
a = {1: 'a'} a[name] = '익명' print(a) {2: 'b', |
a = {1: '파랑구름', 2: '이현준', 3: '민min준JUN'} print(a.keys()) dict_keys([1, 2, 3]) |
a = {1: '파랑구름', 2: '이현준', 3: '민min준JUN'} print(a.values()) dict_values(['파랑구름', '이현준', '민min준JUN']) |
a = {1: '파랑구름', 2: '이현준', 3: '민min준JUN'} print(a.keys()) print(a.values()) print(a.items()) #튜플 형태로 각각 쌍을 담을 수 있음. dict_keys([1, 2, 3]) dict_values(['파랑구름', '이현준', '민min준JUN']) dict_items([(1, '파랑구름'), (2, '이현준'), (3, '민min준JUN')]) |
a = {1: '파랑구름', 2: '이현준', 3: '민min준JUN'} a.clear() print(a) { } |
a = {1: '파랑구름', 2: '이현준', 3: '민min준JUN'} print(a[4]) #4번째가 없으니까 에러가 남 keyerror |
a = {1: '파랑구름', 2: '이현준', 3: '민min준JUN'} print(a.get[4]) #없어도 에러가 안나고 none 이라고 뜸 none |
집합 (set)
- 집합과 관련된 것을 쉽게 처리하기 위해 만든 자료형
- 집합은 원소가 고유하여 중복을 허용하지 않는다
- 순서가 없다 (Unordered)
s1 = set([1, 2, 3]) print(s1) {1, 2, 3} |
s1 = {1, 2, 3} print(s1) {1, 2, 3} |
s1 = set("Hello") print(s1) #중복값은 한번만, 순서가 자기 멋대로임 {'l', 'e', 'H', 'o'} |
교집합 & intersection s1 = set([1,2,3,4,5,6]) s2 = set([4,5,6,7,8,9]) print(s1 & s2) #교집합 표시 : & {4, 5, 6} |
s1 = set([1,2,3,4,5,6]) s2 = set([4,5,6,7,8,9]) print(s1.intersection(s2)) #교집합 함수 : intersection {4, 5, 6} |
합집합 | union s1 = set([1,2,3,4,5,6]) s2 = set([4,5,6,7,8,9]) print(s1 | s2) {1, 2, 3, 4, 5, 6, 7, 8, 9} |
s1 = set([1,2,3,4,5,6]) s2 = set([4,5,6,7,8,9]) print(s1.union(s2)) {1, 2, 3, 4, 5, 6, 7, 8, 9} |
차집합 - difference s1 = set([1,2,3,4,5,6]) s2 = set([4,5,6,7,8,9]) print(s1 - s2) {1, 2, 3} |
s1 = set([1,2,3,4,5,6]) s2 = set([4,5,6,7,8,9]) print(s1.difference(s2)) {1, 2, 3} |
집합 원소 추가하기 (1개) - add s1 = set([1,2,3,4,5,6]) s1.add(7) print(s1) {1, 2, 3, 4, 5, 6, 7} |
집합 원소 추가하기 (여러개) - update s1 = set([1,2,3,4,5,6]) s1.update([7,8,9]) print(s1) {1, 2, 3, 4, 5, 6, 7, 8, 9} |
특정 값 제거하기 - remove s1 = set([1,2,3,4,5,6]) s1.remove(3) print(s1) {1, 2, 4, 5, 6} |
이전 학습 다시보기(복습) - 자료형(숫자,문자열,불) 파이썬 함수
반응형
댓글