[파이썬] 함수의 다중 반환값

파이썬은 여러 값을 한 번에 반환하는 함수를 쉽게 작성할 수 있습니다. 이를 통해 코드를 더 간결하고 효율적으로 작성할 수 있고, 다른 언어에서 일반적으로 사용하는 튜플(tuple) 등을 사용할 필요가 없습니다.

기본적인 다중 반환값

파이썬에서 함수의 다중 반환값을 사용하려면, 함수의 반환문에 여러 값을 쉼표로 구분하여 작성하면 됩니다. 다음은 예제 코드입니다.

def get_name_and_age():
    name = "John"
    age = 25
    return name, age

result = get_name_and_age()

name, age = result
print("이름:", name)
print("나이:", age)

위의 예제 코드에서 get_name_and_age 함수는 이름과 나이라는 두 가지 값을 반환합니다. 이들 값을 반환받는 부분에서는 두 개의 변수 nameage에 값을 할당하였습니다. 이후에는 각 변수를 원하는 대로 사용할 수 있습니다.

튜플과 언패킹

파이썬에서 여러 값을 한 번에 반환하는데 실제로 사용되는 개념은 튜플입니다. 반환된 값들은 튜플의 형태로 묶여 있으며, 이를 언패킹(unpacking)하여 개별 변수에 할당하는 것이 가능합니다. 이전의 예제 코드에서는 언패킹을 사용하여 값을 할당하였습니다.

튜플과 언패킹의 개념을 이용하면, 반환되는 값의 개수가 가변적일 때에도 유연하게 처리할 수 있습니다. 다음은 개수가 가변적인 반환값의 예제 코드입니다.

def get_name_and_ages():
    names = ["John", "Emily", "Mike"]
    ages = [25, 28, 32]
    return names, ages

result = get_name_and_ages()

names, ages = result
for name, age in zip(names, ages):
    print("이름:", name)
    print("나이:", age)

위의 예제 코드에서는 이름과 나이를 각각 리스트로 반환하는 get_name_and_ages 함수를 정의하고 있습니다. 반환되는 값들을 언패킹하여 namesages라는 두 개의 변수에 할당하였습니다. 이후에는 zip 함수를 이용하여 이름과 나이를 짝지어 출력하였습니다.

무시된 반환값

인덱싱이나 언패킹을 통해 필요한 값을 반환받을 수도 있지만, 일부 값은 무시할 수도 있습니다. 이는 _를 사용하여 구현할 수 있는데, _ 변수는 결과값을 저장하지 않음을 나타냅니다. 예를 들면 다음과 같습니다.

def get_named_age():
    name = "John"
    age = 25
    address = "123 Main Street"
    return name, age, address

result = get_named_age()

name, _, address = result
print("이름:", name)
print("주소:", address)

위의 예제 코드에서는 get_named_age 함수의 반환 값 중에서 이름과 주소만을 사용하고 있습니다. 이를 위해 _를 사용하여 나이 값을 무시하였습니다.

이처럼 파이썬에서는 함수의 다중 반환값을 통해 여러 값을 한 번에 처리할 수 있습니다. 이를 활용하여 코드의 가독성과 유지보수를 높여보세요!