(도시, 온도) 형태의 항목들로 이루어진 시퀀스 자료형을 만들어보자. 예를 들어 리스트 또는 튜플을 활용할 수 있다.
L = [['평택', 22], ['수원', 18], ['제주', 25]]
만들기는 어렵지 않다. 하지만 만들고 나서 활용하기가 좀 귀찮다. 예를 들어 수원의 온도를 알고 싶으면?
In [2]:
L = [['평택', 22], ['수원', 18], ['제주', 25]]
In [3]:
L[1][1]
Out[3]:
그런데 이 방식은 인덱스 번호를 알고 있을 때만 가능하다. 리스트의 길이가 좀 만 길어지면 사용이 사실상 불가능한 방식이다.
In [4]:
for city in L:
if city[0] == '수원':
print(city[1])
이방식은 시간이 매우 오래 걸릴 수 있다. 리스트의 길이가 1억인 경우 꽤 오래 기다릴 수 있다.
Lab-08을 보면 시간이 매우 오래 걸릴 수 있음을 확인할 수 있다.
In [5]:
Hash = {}
이제 원하는 자료들의 쌍을 입력한다. 예를 들어 '평택 온도는 22도' 라는 정보를 추가하고자 하면 아래와 같이 하면 된다.
In [6]:
Hash['Pyongtaek'] = 22
이제 평택의 정보가 추가되었음을 확인할 수 있다.
In [7]:
Hash
Out[7]:
이제 수원과 제주의 정보를 추가하고 확인해보자.
In [8]:
Hash['Suwon'] = 18
Hash['Jeju'] = 25
Hash
Out[8]:
In [13]:
Hash['Pyongtaek']
Out[13]:
In [14]:
Hash['Jeju']
Out[14]:
사전에 사용된 키들만 따로 모아놓은 리스트를 만들어주는 사전 자료형 메소드가 있다.
In [16]:
H_keys = Hash.keys()
H_keys
Out[16]:
In [18]:
for key in Hash.keys():
print("{}의 온도는 {}이다.".format(key, Hash[key]))
keys
메소드를 사용하지 않아도 내부적으로 동일하게 취급한다.
In [20]:
for key in Hash:
print("{}의 온도는 {}이다.".format(key, Hash[key]))
사전 자료형에 사용될 수 있는 메소드를 확인해보면 아래와 같다.
In [21]:
dir(Hash)
Out[21]:
pop
, has_key
, values
등에 대해서는 기본적으로 알고 있는 것이 좋다.
In [25]:
Hash.pop("Suwon")
Hash
In [26]:
Hash.has_key("Suwon")
Out[26]:
In [27]:
Hash.has_key("Jeju")
Out[27]:
In [28]:
Hash.values()
Out[28]: