Python 자료구조에 대해 기본적인 부분만 정리 해보려고 한다!
List
는 값을 순차열 적으로 저장 할 수 있다List
안에는 어떤 자료형이던지 포함시킬 수 있다 (List
안에 List
를 넣을 수도 있음)[]
로 감싸서 만들거나 list()
로도 만들 수 있다
a = [1, 2, 3]
b = list(range(5)) # [0, 1, 2, 3, 4]
index
라고 한다Tuple
은 기본적으로 List
와 동일하지만 몇 가지 차이점이 있다List
는 선언 후에도 수정이 가능하지만 Tuple
은 수정이 불가능하다()
로 감싸서 만들거나 tuple()
로도 가능하다
a = (1, 2, 3)
b = tuple(range(5))
List
와 동일하다ad hoc(즉석적으로)
하게 표현하고 싶을 때 사용List
보다 차지하는 메모리 용량이 적다Tuple
이 훨씬 더 효과적Set
는 List
와 마찬가지로 여러 다양한 타입의 요소들을 저장할 수 있다Set
는 요소들이 순서대로 저장되어 있지 않아서 for
문에서 읽어 들일 때도 무작위 순서로 나오게 된다replace
)함{}
으로 감싸서 만들거나 set()
함수를 사용해 만들 수 있고 set()
을 사용하게 된다면 List
를 parameter
로 전달해야 한다
a = {1, 2, 3, 3}
-># {1, 2, 3}
b = set([1, 1, 2, 2])
-># {1, 2}
c = set(1, 2)
-># TypeError 발생
❌
Dictionary
는 Key
와 Value
의 쌍으로 이루어져 있는 자료구조이다{}
로 선언 하는건 세트와 똑같지만 Key : Value
로 값을 넣어야 한다
a = { "name" : "kyle", "address" : "Gunpo"}
List
로 되어있는 Tuple
이나 List
안에 Tuple
이 있는 경우에는dict()
로도 선언이 가능
a = dict(([1, 2], [3, 4], [5, 6]))
->
{1: 2, 3: 4, 5: 6}
Key
로 요소를 읽을 수 있다
a["name"]
-># "kyle"
Key
값은 중복이 불가하고 이미 존재하는 Key
값을 추가하게 된다면 이미 존재하던 Key
값의 요소를 치환한다a = { "name" : "kyle", "name" : "junyoung"} print(a) # {'name' : 'junyoung'}
Dictionary
는Key
와Value
의 값으로 이루어져 있지만Set
는 값이Key
,Value
쌍이 아니라 그냥 요소 하나로 기능을 하는 부분에서의 차이가 존재한다
List
는 선언 후에도 요소들을 추가 / 삭제 등 수정이 가능하지만Tuple
은 선언한 이후에는 요소를 수정할 수 없다List
는 위와 같이 수정이 가능하게 되어있는 자료구조이기 때문에Tuple
보다 차지하는 메모리 용량이 더 크다List
는[]
를 사용하지만Tuple
은()
을 사용한다!