파이썬에서는 list, tuple, dictionary, set 을 이용하여 여러가지 아이템을 한개의 변수에 담을 수 있다.
list는 대괄호[]
를 이용한다.
list의 item들은 index를 가지고 있다.
list = [0, 1, 2, 3, 4]
tuple은 소괄호()
를 이용한다.
tuple = (0, 1, 2, 3, 4)
indexing등의 면에서는 list와 거의 동일하다. 하지만 tuple은 list와 다르게 수정이 가능하지 않다. 이를 immutable이라고 한다.
We often call lists mutable (meaning they can be changed) and tuples immutable (meaning they cannot be changed).
수정이 불가능한 tuple은 언뜻 생각하기에는 굉장히 불편한 것처럼 들린다. 그렇다면 왜 list가 아닌 tuple도 존재하는 것일까?
tuple은 수정이 불가능하기 때문에 제한적인만큼 메모리를 적게 차지한다. 그러므로 tuple은 간단한 데이터를 저장할때 훨씬 효과적이다.
지금까지 list 와 tuple에 대해서 살펴보았다.
중괄호{}
를 사용해야하는 set과 dictionary에 대해서 살펴보도록 하자.
set = {0, 1, 2, 3, 4}
set에서 item들은 순서를 가지고 있지 않다. 즉, indexing이 없다.
set에서 item들은 중복될 수 없다.
set = {0, 1, 1, 1, 1}
print(set)
> {0, 1}
set은 수정될 수 있다. 즉, mutable이다. item을 더하거나 뺄 수 있다.
하지만 set에는 순서가 없기 때문에 item을 순차적으로 더하거나 뺄 수는 없다. 고로 set에서는 append
대신 add
, pop
대신 remove
를 사용한다.
set = {0, 1, 2}
set.add(3)
print(set)
> {0, 1, 2, 3}
set.remove(3)
print(set)
> {0, 1, 2}
dict는 set와 같이 순서가 없으며, 중복된 아이템을 가질 수 없다. 하지만 dict의 item들은 "key" : "value"
의 그룹으로 이루어져 있다.
dict = {"name": "Antoo", "age" : 10, "species" : "cat"}
index가 없는 대신, dict는 key를 통해 value를 불러올 수 있다.
dict = {"name": "Antoo", "age" : 10, "species" : "cat"}
print(dict["name"])
> Antoo
또한, dict도 mutable이다.
dict에 새로운 "key" : "value"
를 더하는 방법에는 두가지가 있다.
"key"
를 사용하여 "value"
지정하기dict = {"name": "Antoo", "age" : 10, "species" : "cat"}
dict["color"] = "grey"
print(dict)
> {"name": "Antoo", "age" : 10, "species" : "cat", "color" : "grey"}
update()
update()
라는 python built-in function 을 이용하여 새로운 "key" : "value"
를 추가할 수 있다.
argument는 반드시 dict 의 형태를 가지고 있어야한다.
dict = {"name": "Antoo", "age" : 10, "species" : "cat"}
dict.update({"color" : "grey"})
print(dict)
> {"name": "Antoo", "age" : 10, "species" : "cat", "color" : "grey"}
다음은 인터넷에서 가져온 list, tuple, set, dictionary 의 특징들을 표로 정리해놓은 것이다.
< Python Collections (Arrays) >
List is a collection which is ordered and changeable. Allows duplicate members.
Tuple is a collection which is ordered and unchangeable. Allows duplicate members.
Set is a collection which is unordered and unindexed. No duplicate members.
Dictionary is a collection which is unordered and changeable. No duplicate members.