Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 딕셔너리 values() 메서드 완벽 가이드

Python 딕셔너리 values() 메서드란?

Python의 딕셔너리(dictionary) values() 메서드는 딕셔너리에 저장된 모든 값을 담은 객체를 반환합니다. 딕셔너리의 키(key)가 아닌 값(value)만 순회하고 싶을 때 특히 유용합니다. 또한 나중에 딕셔너리를 수정하면, values() 메서드가 반환한 객체에도 변경 사항이 그대로 반영됩니다.

Python으로 개발할 때 데이터를 딕셔너리에 저장하는 경우가 많습니다. 예를 들어 식당 관리 시스템을 만든다면, 각 주문 정보를 딕셔너리에 저장할 수 있습니다.

그렇다면 딕셔너리에 저장된 값들은 어떻게 가져올 수 있을까요? 바로 이때 Python 딕셔너리의 values() 메서드를 사용합니다. values() 메서드는 딕셔너리에 저장된 모든 값을 목록 형태로 반환해 줍니다.

이 글에서는 Python 딕셔너리의 기본 개념과 values() 메서드의 사용법을 예제와 함께 살펴보겠습니다.

Python 딕셔너리 values() 기본 문법

values() 메서드는 딕셔너리에 저장된 값들의 목록을 반환하며, 별도의 인수를 받지 않습니다. 사용 방법은 간단합니다. 딕셔너리 이름 뒤에 values()를 붙이면 됩니다.

먼저 기본 문법부터 확인해 보겠습니다:

dict_name = { "name1": "value1" }
dict_name.values()

위 코드에서 볼 수 있듯이, values()는 어떤 매개변수도 받지 않으며 단순히 딕셔너리 이름 뒤에 붙여서 호출합니다.

주의할 점은 values()가 일반 리스트(list)가 아니라 dict_values 객체를 반환한다는 것입니다. 일반 리스트로 변환하려면 Python의 list() 함수를 사용하면 됩니다:

dict_name = { "name1": "value1" }
new_list = list(dict_name.values())

new_list에는 지정한 딕셔너리의 모든 값이 담긴 일반 리스트가 저장됩니다. 앞선 문법으로 생성한 객체와 달리, 이 리스트는 dict_values 객체가 아닙니다.

반대로 dict_values 객체를 그대로 유지한 채 순회(iterate)할 수도 있습니다.

values() 메서드는 Python for 루프와 함께 사용되는 경우가 많습니다. for 루프와 조합하면 딕셔너리의 모든 값을 하나씩 순회하며 작업할 수 있습니다. 예를 들어 각 키에 해당하는 값이 올바르게 설정되어 있는지 검사하는 데 활용할 수 있습니다.

딕셔너리 values() 예제

학교 학생 한 명의 정보를 저장하는 Python 딕셔너리가 있다고 가정해 보겠습니다.

simon = {
	'name': 'Simon Henderson',
	'birthday': '02/09/2002',
	'class': 'Senior Year',
	'honor_roll': True
}

name은 키이며, 여기에 연결된 값은 Simon Henderson입니다. birthday 역시 키이며 02/09/2002라는 값이 할당되어 있습니다. 학생의 학년(class) 정보와 명예의 전당(honor_roll) 여부도 함께 저장했습니다.

이제 딕셔너리에 저장된 모든 값을 목록으로 가져와 보겠습니다. 이렇게 하면 키를 신경 쓰지 않고 값만 다룰 수 있습니다. values() 메서드를 사용하면 됩니다:

simon = {
	'name': 'Simon Henderson',
	'birthday': '02/09/2002',
	'class': 'Senior Year',
	'honor_roll': True
}

print(simon.values())

실행 결과는 다음과 같습니다:

dict_values([‘Simon Henderson’, ’02/09/2002′, ‘Senior Year’, True])

먼저 네 개의 키와 값으로 구성된 딕셔너리 simon을 선언했습니다. 그런 다음 values() 메서드로 딕셔너리에 저장된 값들을 가져와 콘솔에 출력했습니다.

코드 실행 결과, 딕셔너리의 모든 값이 담긴 dict_values 객체가 반환됩니다.

for 루프로 값 순회하기

딕셔너리의 모든 값을 콘솔에 한 줄씩 출력하고 싶다면 어떻게 해야 할까요? 이때 for 루프가 유용합니다.

for 루프를 사용해 dict_values 객체의 모든 항목을 하나씩 순회하며 콘솔에 출력할 수 있습니다:

simon = {
	'name': 'Simon Henderson',
	'birthday': '02/09/2002',
	'class': 'Senior Year',
	'honor_roll': True
}

for item in simon.values():
	print(item)

실행 결과:

Simon Henderson
02/09/2002
Senior Year
True

values() 메서드가 값들이 담긴 dict_values 객체를 반환하기 때문에, for 루프로 손쉽게 순회할 수 있습니다.

이 예제에서는 simon 딕셔너리의 모든 값을 순회하는 for 루프를 만들었습니다. 루프가 실행될 때마다 딕셔너리의 값이 하나씩 콘솔에 출력되고, 모든 값을 순회하면 코드 실행이 종료됩니다.

for 루프로 데이터 유효성 검사하기

for 루프와 values() 메서드를 활용하면 딕셔너리에 빈 문자열이 있는지 확인하는 유효성 검사도 가능합니다.

다음 코드를 살펴보겠습니다:

simon = {
	'name': 'Simon Henderson',
	'birthday': '02/09/2002',
	'class': 'Senior Year',
	'honor_roll': True
}

blank = 0
for item in simon.values():
	if item == "":
		blank += 1

print("There are {} blank values in the dictionary.".format(blank))

먼저 blank라는 Python 변수를 선언합니다. 이 변수는 딕셔너리에 있는 빈 값의 개수를 추적합니다.

for 루프 안에서 Python if 문을 사용해 각 항목의 값이 “”(빈 문자열)인지 검사합니다. 빈 문자열이 발견되면 “blank” 변수에 1을 더합니다.

루프 실행이 끝나면 딕셔너리에 몇 개의 빈 값이 있는지 알려줍니다. Python format() 문을 사용해 빈 값의 개수를 콘솔에 출력되는 문자열에 삽입합니다.

마무리

Python 딕셔너리의 values() 메서드는 딕셔너리에 저장된 값들을 조회하는 메서드입니다. 반환되는 값들은 dict_values 객체 형태로 제공되며, for 루프를 사용해 각 값을 하나씩 읽어올 수 있습니다.

이 글에서는 dictionary.values() 메서드를 사용해 딕셔너리의 값을 가져오는 방법을 알아보았습니다. 이제 여러분도 Python 전문가처럼 values() 메서드를 활용할 준비가 되었습니다!

Python을 더 깊이 배우고 싶다면 공식 문서, 온라인 강좌, 도서 등 다양한 학습 자료를 참고해 보세요. 꾸준한 실습이 Python 실력을 한 단계 끌어올리는 가장 확실한 방법입니다.