Python - Dictionary

JS · 26 Sep 2020

Dictionary(Dict)는 key-value 형태의 데이터를 갖고 있는 Collection입니다. 다른 언어에서는 Map이라고 하지만, Python은 Dictionary라고 합니다.

이 글에서는 Dict를 사용하는 방법에 대해서 알아보겠습니다.

  • Dictionary 정의
  • 데이터 접근
  • 데이터 변경
  • 데이터 추가
  • 데이터 삭제
  • Loop
  • key 존재 확인
  • Length
  • Copy

Dictionary 정의

Dictionary(dict)를 정의하려면 다음과 같이 { }안에 key-value 형태의 데이터를 입력하면 됩니다.

cities = {
    'Korea': 'Seoul',
    'Japan': 'Tokyo',
    "China": 'Beijing',
    'USA': 'Washington',
    'France': 'Paris'
}

만약 데이터가 없는 dict를 정의하고 싶다면 { }으로 데이터를 정의하지 않으면 됩니다.

cities = {}

데이터 접근

dict의 데이터를 접근하려면 다음과 같이 dict['key'] 또는 dict.get('key')로 접근하면 됩니다.

cities = {
    'Korea': 'Seoul',
    'Japan': 'Tokyo',
    "China": 'Beijing',
    'USA': 'Washington',
    'France': 'Paris'
}

print(cities)
print(cities['Korea'])
print(cities.get('Japan'))

Output:

{'Korea': 'Seoul', 'Japan': 'Tokyo', 'China': 'Beijing', 'USA': 'Washington', 'France': 'Paris'}
Seoul
Tokyo

데이터 변경

데이터를 변경하려면 다음과 같이 할 수 있습니다.

cities['France'] = 'PARIS'
print(cities['France'])

Output:

PARIS

데이터 추가

데이터를 추가하는 것도 데이터를 변경하는 것과 동일합니다. 다른점은 존재하지 않는 key에 대해서 value를 설정하는 것입니다.

cities['Germany'] = 'Berlin'
print(cities)

Output:

{'Korea': 'Seoul', 'Japan': 'Tokyo', 'China': 'Beijing', 'USA': 'Washington', 'France': 'Paris', 'Germany': 'Berlin'}

데이터 삭제

pop(key)로 데이터를 제거할 수 있습니다.

cities = {
    'Korea': 'Seoul',
    'Japan': 'Tokyo',
    "China": 'Beijing',
    'USA': 'Washington',
    'France': 'Paris'
}

removed = cities.pop('France')
print(removed)
print(cities)

Output:

Paris
{'Korea': 'Seoul', 'Japan': 'Tokyo', 'China': 'Beijing', 'USA': 'Washington'}

popitem

popitem은 가장 마지막에 추가된 아이템을 제거합니다. (python 3.7 이전 버전은 random으로 아이템을 삭제합니다)

removed = cities.popitem()
print(removed)
print(cities)

Output:

('France', 'Paris')
{'Korea': 'Seoul', 'Japan': 'Tokyo', 'China': 'Beijing', 'USA': 'Washington'}

del

del으로 아이템을 삭제할 수도 있습니다.

del cities['USA']
print(cities)

Output:

{'Korea': 'Seoul', 'Japan': 'Tokyo', 'China': 'Beijing', 'France': 'Paris'}

다음과 같이 dict 객체를 모두 삭제할 수 있습니다. 삭제한 이후에 dict 객체는 존재하지 않기 때문에 접근하면 에러가 발생합니다.

del cities

clear

clear()는 dict에 추가된 모든 데이터를 제거합니다. dict 객체는 삭제되지 않고 비어있는 상태로 남아있습니다.

cities.clear()
print(cities)

Loop

다음과 같이 for in으로 모든 아이템을 순회할 수 있습니다.

for country in cities:
    print(country)

Output:

Korea
Japan
China
USA
France

value를 출력하고 싶다면 다음과 같이 하면 됩니다.

for country in cities.values():
    print(country)

Output:

Seoul
Tokyo
Beijing
Washington
Paris

key와 value를 모두 순회하고 싶다면 다음과 같이 하면 됩니다.

for country, city in cities.items():
    print('country: {}, city: {}'.format(country, city))

Output:

country: Korea, city: Seoul
country: Japan, city: Tokyo
country: China, city: Beijing
country: USA, city: Washington
country: France, city: Paris

Key 존재 확인

다음과 같이 in을 사용하여 dict에 어떤 key가 존재하는지 확인할 수 있습니다.

if "China" in cities:
    print("China is in the cities")

if "Thailand" not in cities:
    print("Thailand is not in the cities")

Output:

China is in the cities
Thailand is not in the cities

Length

len()으로 dict의 길이를 계산할 수 있습니다.

print(len(cities))

Copy

다음과 같이 copy()를 이용하여 dict 객체를 복사할 수 있습니다.

cities = {
    'Korea': 'Seoul',
    'Japan': 'Tokyo',
    "China": 'Beijing',
    'USA': 'Washington',
    'France': 'Paris'
}

copied = cities.copy()
copied['Germany'] = 'Berlin'
print(cities)
print(copied)

Output:

{'Korea': 'Seoul', 'Japan': 'Tokyo', 'China': 'Beijing', 'USA': 'Washington', 'France': 'Paris'}
{'Korea': 'Seoul', 'Japan': 'Tokyo', 'China': 'Beijing', 'USA': 'Washington', 'France': 'Paris', 'Germany': 'Berlin'}

또는, dict()를 이용하여 객체를 복사할 수 있습니다.

copied = dict(cities)
copied['Germany'] = 'Berlin'
print(cities)
print(copied)
댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha