수영장의 수영_데이터 분석 블로그

[파이썬] 04. 딕셔너리, 튜플, 집합 본문

Goorm 자연어처리 전문가 양성 과정 2기/Python

[파이썬] 04. 딕셔너리, 튜플, 집합

슈빔멘 2022. 1. 8. 00:43

딕셔너리

- 리스트와 같이 값의 집합으로 이루어져있음

- 순서가 존재하지 않는다

- "key : value" 형태로 값을 저장

- dict_name = {key1:val1, key2:val2, ...}

dict_name = (key1=val1, key2=val2, ...)

 

dic1 = {"apple":"사과", "bird":"새", "bug":"벌레"}

dic2 = dict(apple = "사과", bird = "새", bug = "벌레")

 

- 리스트와 달리 빈 딕셔너리에 바로 값 추가가 가능하다

dic = {}

dic["apple"] = "사과"
dic["grape"] = "포도"
dic["fruits"] = ["바나나", "딸기", "오렌지"]

 

- 지우기

dic1 = {"apple":"사과", "bird":"새", "bug":"벌레"}

del dic1["bug"] #가능
del dic1["벌레"] #불가능

 

key - value의 성질

- key는 Immutable하다

- key는 중복이 불가능하다

- key는 리스트가 불가능하다

- value는 어떤 값도 가능하다

 

 

딕셔너리 함수

x = { ~~~ } 

 

- x.keys() : key만 모아 dict_keys([key1, key2, ...])로 반환 -> 주의. 리스트 아님, 리스트로 받으려면 list()로 씌워줘야함

- x.values() : value만 모아 dict_values([value1, value2, ...])로 반환

- x.items() : key와 value를 튜플로 묶음 -> dict_items([(key1, value1), (key2, value2), ...])로 반환

 

- x.clear() : 딕셔너리의 모든 값을 삭제함

- x.get(key) : x[key]와 같음 -> 키에 맞는 value 반환

- key in x : 딕셔너리에 key가 존재하는지 판별

 

 

튜플

- 값을 수정할 수 없는 리스트

- 선언 : tuple_name = () 

 

t1 = ('a', 'b', 'c', 1, 2, 3)

t2 = ("hello",) #하나의 값이면 뒤에 콤마 입력

t3 = "goorm", 'b', "hello", 1, 2, 3 #괄호 생략 가능

s1 = list(set([1,2,3])) #다음에 배우게 될 집합 Mutable 타입
t4 = ([1, 2, 3], {"사과":"apple", "포도":"grape"}, ('a', 'b', 'c'), s1) #리스트 내 어떤 값도 가능

t4[3][2] = "edit" #중요: 튜플 요소가 Mutable하면 수정할 수 있음
t4[1]["사과"] = "edit"
t4[0][2] = "edit"

 

- 하나의 요소로 이루어진 튜플을 만들때는 꼭 콤마(,)를 찍어주어야한다

- 괄호 없는 나열로도 튜플 선언이 가능하다

- 어떤 자료형이든 저장가능하다

- 값을 수정하지 않는 한 리스트의 함수를 동일하게 사용할 수 있다

 

 

집합 Set

- 중복과 순서가 없다

- 선언 : set_name = {}

- set(전달 인자)로 집합화 할 수 있다

- 만약 딕셔너리에 set을 씌우면 key만 저장한다

 

=> 중복 제거를 위한 필터로 자주 사용된다

=> 인덱스가 없으므로 인덱싱이 필요하다면 list()를 씌우는 등 다시 자료형을 바꿔주어야한다

 

 

집합 함수

 

 

ex)

s1 = {1, 2, 3, 4}

s1.add(10)
s1.add((1,2,3)) #add() 사용 시 튜플/문자열은 값 하나로 인식

s1.add("hello") # { ~, 'hello'}
s1.update("hello") # {~, 'h', 'e', 'l', 'o'}

s1.remove("hello") #하나의 값만 제거 가능 (add로 추가한 'hello'를 삭제하는것)