Python
[Python] 딕셔너리 - 모든 키, 값 또는 둘 다 구하기
Dongi
2022. 2. 12. 11:34
안녕하세요 동기 여러분!
오늘은 딕셔너리의 모든 키, 값 또는 둘 다 구하는 방법에 대해서 알아봅시다!
모든 키 구하는 방법
딕셔너리에서 키를 구하는 방법은 크게 두 가지가 있습니다. 하나는 빌트-인 함수인 list()를 사용하는 것과 .keys()메서드를 사용하는 방법입니다.
1. list()
딕셔너리를 list로 감싸서 출력하는 간단한 방법입니다.
ecs_keyboard = {"앱코 HACKER K660": 49800, "Razer Huntsman V2 Linear KR": 219000, "마이크로닉스 MANIC EX580": 62980, "한성컴퓨터 GK898B": 159000}
lst_ecs_keyboard = list(ecs_keyboard)
print(lst_ecs_keyboard)
# 출력값 : ['앱코 HACKER K660', 'Razer Huntsman V2 Linear KR', '마이크로닉스 MANIC EX580', '한성컴퓨터 GK898B']
2. .keys()
ecs_keyboard = {"앱코 HACKER K660": 49800, "Razer Huntsman V2 Linear KR": 219000, "마이크로닉스 MANIC EX580": 62980, "한성컴퓨터 GK898B": 159000}
method_ecs_keyboard = ecs_keyboard.keys()
print(method_ecs_keyboard)
# 출력값 : dict_keys(['앱코 HACKER K660', 'Razer Huntsman V2 Linear KR', '마이크로닉스 MANIC EX580', '한성컴퓨터 GK898B'])
출력값은 보면 dict_keys라는 객체가 있는데 이 상태에서는 요소를 추가하거나 제거하는 것은 불가능합니다.
method_ecs_keyboard의 요소들을 하나씩 출력하고 싶다면 반복문을 이용하면 됩니다.
for keyboard in method_ecs_keyboard:
print(keyboard)
# 출력값 :
# 앱코 HACKER K660
# Razer Huntsman V2 Linear KR
# 마이크로닉스 MANIC EX580
# 한성컴퓨터 GK898B
모든 값(Value)구하는 방법
모든 값을 구하는 방법은 하나 있는데. values() 메서드를 사용하는 것입니다.
ecs_keyboard = {"앱코 HACKER K660": 49800, "Razer Huntsman V2 Linear KR": 219000, "마이크로닉스 MANIC EX580": 62980, "한성컴퓨터 GK898B": 159000}
value_ecs_keyboard = ecs_keyboard.values()
print(value_ecs_keyboard)
# 출력값 : dict_values([49800, 219000, 62980, 159000])
값 역시 반복문을 이용해 값을 하나씩 뽑아볼 수 있습니다.
for keyboard in value_ecs_keyboard:
print(keyboard)
# 출력값 :
# 49800
# 219000
# 62980
# 159000
굳이 값을 리스트에 담고 싶다면 아래의 방법도 있습니다.
list(value_ecs_keyboard)
print(list(value_ecs_keyboard))
# 출력값 : [49800, 219000, 62980, 159000]
둘 다 구하는 방법
둘 다 구하는 방법은 .items() 메서드를 사용하는 것입니다.
ecs_keyboard = {"앱코 HACKER K660": 49800, "Razer Huntsman V2 Linear KR": 219000, "마이크로닉스 MANIC EX580": 62980, "한성컴퓨터 GK898B": 159000}
items_ecs_keyboard = ecs_keyboard.items()
print(items_ecs_keyboard)
# 출력값 : dict_items([('앱코 HACKER K660', 49800), ('Razer Huntsman V2 Linear KR', 219000), ('마이크로닉스 MANIC EX580', 62980), ('한성컴퓨터 GK898B', 159000)])
반복문에서는 어떻게 하지? 걱정하지 마세요! 임시변수(temporary variable)를 두 개 두면 됩니다.
for keyboard, value in items_ecs_keyboard:
print("{}의 가격은 {}원입니다.".format(keyboard, value))
# 출력값 :
# 앱코 HACKER K660의 가격은 49800원입니다.
# Razer Huntsman V2 Linear KR의 가격은 219000원입니다.
# 마이크로닉스 MANIC EX580의 가격은 62980원입니다.
# 한성컴퓨터 GK898B의 가격은 159000원입니다.
굳이 리스트로 표현하자면 아래와 같이 하면 됩니다.
print(list(items_ecs_keyboard))
# 출력값 : [('앱코 HACKER K660', 49800), ('Razer Huntsman V2 Linear KR', 219000), ('마이크로닉스 MANIC EX580', 62980), ('한성컴퓨터 GK898B', 159000)]
오늘의 느낌
느려도 늦지 않다.