이번 포스팅에서는 사전(Dictionary) 데이터 유형에 대해 알아봅시다.
사전(Dictionary)
사전은 리스트와 마찬가지로 많은 값의 모음입니다.
하지만 리스트에서 인덱스를 정수밖에 사용하지 못했던 것과는 달리
사전 데이터에서는 인덱스를 다양한 데이터 유형을 사용할 수 있습니다.
그 인덱스를 key라고 하며, key와 연관된 value의 쌍을 key-value pair라고 합니다.
사전 데이터는 중괄호 {}로 정의합니다.
myDog = {'old': '4', 'color': 'white', 'size': 'fat'}
여기서 key는 'old', 'color', 'size'이고, value는 각각 '4', 'white', 'fat' 입니다.
만약 key를 통해 value를 호출하고 싶다면
myDog = {'old': '4', 'color': 'white', 'size': 'fat'}
print(myDog['old'])
마치 리스트에서 정수 인덱스를 입력하는 것 처럼 key를 입력하여
value를 호출할 수 있습니다.
사전(Dictionary)과 리스트(List)의 차이점
사전에서도 물론 정수 키(key)를 사용할 수 있지만 리스트와 같이
0에서 시작할 필요는 없습니다.
A = {10: 'apple', 7: 'banana', 3: 'peach'}
이렇다보니, 사전의 값들은 순서가 없습니다.
리스트는 0에서부터 순서를 매기면 되지만, 사전은 그렇지 않기 때문이죠.
그렇다보니 데이터를 파워풀한 방법으로 구성할 수 있습니다.
임의의 인덱스(key)를 쓸 수 있고, 그 key가 아니면 오류가 나기 때문입니다.
메소드(keys(), values(), items(), get(), setdefault())
사전의 key, value를 반환하는 세가지 메소드가 있습니다.
values()
values() 메소드는 사전의 value을 반환하는 메소드입니다.
myDog = {'old': '4', 'color': 'white', 'size': 'fat'}
for i in myDog.values():
print(i)
실행 결과는 아래와 같습니다.
for 루프문을 통해 사전에서 모든 value를 반복해 print했습니다.
keys()
keys() 메소드는 사전의 key를 반환하는 메소드입니다.
myDog = {'old': '4', 'color': 'white', 'size': 'fat'}
for i in myDog.keys():
print(i)
실행 결과는 아래와 같습니다.
위에서와는 다르게 사전의 key만이 출력되는 것을 확인할 수 있습니다.
items()
다음은 items() 메소드입니다.
이 메소드는 사전의 key와 value를 모두 반환하는 메소드입니다.
myDog = {'old': '4', 'color': 'white', 'size': 'fat'}
for i in myDog.items():
print(i)
get()
키 값이 사전에 존재하는지 여부를 확인하기 위해서는
get() 메소드를 사용하는 것이 적합합니다.
get() 메소드는 두 개의 매개변수를 가지는데,
하나는 key가 존재할 경우 가져올 값, 하나는 존재하지 않을 경우 가져올 값입니다.
예를 들면,
myDog = {'old': '4', 'color': 'white', 'size': 'fat'}
print(myDog.get('color', 0))
print(myDog.get('eye', 0))
위 코드를 실행하면 결과는 아래와 같습니다.
첫번째는 'color'라는 key가 존재했기 때문에 그 값인 'white'를 반환한 것이며,
두번째는 'eye'라는 key가 존재하지 않기 때문에 두번째 매개변수인 0을 반환한 것입니다.
setdefault()
그럼 그 key가 존재하지 않는다는 걸 알았을 때
그 key에 value를 설정하고 싶은 경우도 있겠죠?
그럴 때 사용하는 메소드가 setdefault() 입니다.
이 메소드는 특정 key에 value가 존재하지 않는 경우에만 value를 설정할 수 있습니다.
myDog = {'old': '4', 'color': 'white', 'size': 'fat'}
print(myDog)
myDog.setdefault('eye', 'yellow')
print(myDog)
myDog.setdefault('eye', 'black')
print(myDog)
위 코드를 실행하면 결과는 아래와 같습니다.
처음 출력된 결과는 초기에 선언된 myDog라는 사전이며, 3쌍의 key-value pair 형태입니다.
그 다음 setdefault() 메소드를 사용하여
'eye'라는 key에 값이 없는 경우 'yellow'라는 value를 설정하도록 하여
'eye' key에 yellow라는 value가 사전에 입력되어 출력된 결과를 확인할 수 있으며,
그 다음에엔 'eye'가 없을 경우 'black'이라는 value를 설정하도록 하였으나
이미 'eye'라는 key에 value가 존재하기 때문에 설정되지 않고
그대로 'yellow'로 남아있는 모습입니다.
여기까지 사전(Dictionary)이라는 데이터 유형에 대해 알아보았습니다.
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 문자열 메소드 (0) | 2021.06.12 |
---|---|
[Python] 문자열 입력 방법 (0) | 2021.06.12 |
[Python] 리스트(list) 활용 - for문, 다양한 메소드 (0) | 2021.06.09 |
[Python] 데이터 유형: 리스트(list) (0) | 2021.06.08 |
[Python] 예외처리 (0) | 2021.06.03 |