본문 바로가기

파이썬/파이썬 예제 코드

[파이썬 예제코드] 딕셔너리 형

# 파이썬 딕셔너리 란?

사람은 누구든지 "이름" = "홍길동", "생일" = "몇 월 며칠" 등으로 구별할 수 있다. 파이썬은 영리하게도 이러한 대응 관계를 나타낼 수 있는 자료형을 가지고 있다. 요즘 사용하는 대부분의 언어도 이러한 대응 관계를 나타내는 자료형을 갖고 있는데, 이를 연관 배열(Associative array) 또는 해시(Hash)라고 한다.

파이썬에서는 이러한 자료형을 딕셔너리(Dictionary)라고 하는데, 단어 그대로 해석하면 사전이라는 뜻이다. 즉 "people"이라는 단어에 "사람", "baseball"이라는 단어에 "야구"라는 뜻이 부합되듯이 딕셔너리는 Key와 Value를 한 쌍으로 갖는 자료형이다. 예컨대 Key가 "baseball"이라면 Value는 "야구"가 될 것이다.

딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다. 이것이 바로 딕셔너리의 가장 큰 특징이다. baseball이라는 단어의 뜻을 찾기 위해 사전의 내용을 순차적으로 모두 검색하는 것이 아니라 baseball이라는 단어가 있는 곳만 펼쳐 보는 것이다.

# 【딕셔너리 형】
# numbers라는 딕셔너리 변수를 선언, 값을 초기화 함...
# 딕셔너리는 사전이라는 뜻이고, 키값을 이용하여 밸류 값을 사용하는 기능이다.
numbers = {'one':1, 'two':2, 'three':3}
print(numbers)

#위에 선언한 딕셔너리에서 하나의 값을 뽑아 출력 가능함...
numbers['one']
print(numbers['one'])

# 아래와 같이 값을 추가할 수 있음
numbers['eleven'] = 11
print(numbers)

# 이미 존재하는 값을 변경
numbers['one'] = 'pluto'
print(numbers)

# Dictionary Comprehensions 기능
planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
planet_to_initial = {planet: planet[0] for planet in planets}
print(planet_to_initial)

# for 키워드를 사용하지 않고 in 키워드만 사용하면 해당 딕셔너리에 key가 있는지 확인
print('Saturn' in planet_to_initial)

print('Betelgeuse' in planet_to_initial)

# 반복문에서는 튜플 데이터 타입과는 다르게 key만을 반환 하여 값을 나타냅니다.
for k in numbers:
    print("{} = {}".format(k, numbers[k]))

# 모든 이니셜을 가져와 알파벳 순으로 정렬하고 공백으로 구분된 문자열에 넣습니다.
' '.join(sorted(planet_to_initial.values()))

# dict.items()

for planet, initial in planet_to_initial.items():
    print("{} 는 다음 이니셜로 시작합니다.\"{}\"".format(planet.rjust(10), initial))