이번 포스팅에서는 파이썬 자료구조 중 하나인 딕셔너리의 내장함수에 대해 알아보도록 하겠습니다.
keys
user = {'name': 'mason', 'age': 100, 'city': 'Seoul', 'MBTI': 'INFJ'}
print(user.keys())
# dict_keys(['name', 'age', 'city', 'MBTI'])
for key in user.keys():
print(key, end=' ')
# name age city MBTI
# 리스트의 내장함수 count를 사용하면 에러가 발생합니다.
user.keys().count('age')
# AttributeError: 'dict_keys' object has no attribute 'count'
user_as_list = list(user.keys())
user_as_list # ['name', 'age', 'city', 'MBTI']
user_as_list.count('age') # 1
딕셔너리의 키로 구성되는 dict_keys 객체를 리턴합니다.
리턴 받은 dict_keys 객체에 대해 반복문을 실행할 수 있습니다.
dict_keys는 리스트의 형태를 보이지만 리스트의 내장함수들은 사용할 수 없습니다.
리스트 메서드를 사용하려면 list() 함수를 사용해서 타입을 리스트로 변환하는 과정이 필요합니다.
values
user = {'name': 'mason', 'age': 100, 'city': 'Seoul', 'MBTI': 'INFJ'}
print(user.values())
# dict_values(['mason', 100, 'Seoul', 'INFJ'])
for value in user.values():
print(value, end=' ')
# mason 100 Seoul INFJ
print(list(user.values()))
# ['mason', 100, 'Seoul', 'INFJ']
딕셔너리의 값들로 구성되는 dict_values 객체를 리턴합니다.
dict_keys 객체처럼 dict_values 객체 또한 반복문을 실행할 수 있습니다.
list() 함수를 사용해서 리스트로 타입을 변환할 수도 있습니다.
items
user = {'name': 'mason', 'age': 100, 'city': 'Seoul', 'MBTI': 'INFJ'}
print(user.items())
# dict_items([('name', 'mason'), ('age', 100), ('city', 'Seoul'), ('MBTI', 'INFJ')])
for k, v in user.items():
print(k, v)
# name mason
# age 100
# city Seoul
# MBTI INFJ
print(list(user.items()))
# [('name', 'mason'), ('age', 100), ('city', 'Seoul'), ('MBTI', 'INFJ')]
딕셔너리의 각 키와 값 쌍들을 튜플로 묶은 dict_items 객체를 리턴합니다.
마찬가지로 dict_items 객체에 대해 반복문과 list() 함수를 사용할 수 있습니다.
clear
user = {'name': 'mason', 'age': 100, 'city': 'Seoul', 'MBTI': 'INFJ'}
user.clear()
print(user) # {}
딕셔너리 내 모든 키와 값을 제거하며 아무것도 리턴하지 않습니다.
get
user = {'name': 'mason', 'age': 100, 'city': 'Seoul', 'MBTI': 'INFJ'}
print(user.get('name'))
# 'mason'
print(user.get('MBTI'))
# 'INFJ'
print(user.get('gender'))
# None
print(user['gender'])
# KeyError: 'gender'
print(user.get('gender', 'male'))
# 'male'
딕셔너리 내 특정 키에 대응하는 값을 리턴합니다.
대괄호를 사용해서 값을 가져오는 방법과 같습니다.
하지만 대괄호를 사용해서 딕셔너리에 존재하지 않는 값을 찾으려고 하는 경우에는 KeyError를 발생시키지만 get 함수를 사용하면 None을 리턴합니다.
또한 get 함수로 존재하지 않는 값을 찾으려고 할 때 리턴되는 디폴트 값을 설정할 수도 있습니다.
in
user = {'name': 'mason', 'age': 100, 'city': 'Seoul', 'MBTI': 'INFJ'}
print('name' in user)
# True
print('MBTI' in user)
# True
print('gender' in user)
# False
in 키워드를 사용하면 특정 키가 딕셔너리에 존재하는지 알 수 있습니다.
존재하면 True, 존재하지 않으면 False를 리턴합니다.
user = {'name': 'mason', 'age': 100, 'city': 'Seoul', 'MBTI': 'INFJ'}
for key in user:
print(key, end=' ')
# name age city MBTI
반복문과 in 키워드를 함께 사용해서 딕셔너리의 키에 접근할 수 있습니다.
마치며
이상으로 딕셔너리 내장함수에 대한 정리를 마치도록 하겠습니다.
다음 포스팅에서는 문자열 내장함수에 대해 알아보도록 하겠습니다.
'파이썬・ML' 카테고리의 다른 글
[ML]mlxtend 모듈로 결정 경계 확인하기 (0) | 2023.08.16 |
---|---|
파이썬 문자열 함수 총정리 (0) | 2023.07.26 |
파이썬 collections 모듈 Counter 사용하기 (0) | 2023.07.26 |
Selenium 사용하기 (0) | 2023.07.07 |
Selenium 크롬드라이버 location 에러 (0) | 2023.07.06 |