Как передать несколько значений с помощью `return`?

Python позволяет возвращать несколько значений из функции, упаковывая их в структуру данных, такую как кортеж (tuple), список (list) или словарь (dictionary).
Например, return x, y, z вернет кортеж из трех значений. Получатель может затем распаковать эти значения: a, b, c = my_function().

В Python функция может возвращать несколько значений, используя несколько способов. Самый распространенный и идиоматичный способ - это возврат кортежа (tuple). Кортеж - это упорядоченная, неизменяемая последовательность элементов.

Пример с кортежем:


def my_function(x, y):
    sum_result = x + y
    product_result = x * y
    return sum_result, product_result  # Возвращаем кортеж

result = my_function(5, 3)
print(result)        # Вывод: (8, 15)
print(result[0])     # Вывод: 8
print(result[1])     # Вывод: 15

# Распаковка кортежа при присваивании
sum_value, product_value = my_function(5, 3)
print(sum_value)   # Вывод: 8
print(product_value) # Вывод: 15
  

В этом примере функция `my_function` возвращает два значения, `sum_result` и `product_result`, которые автоматически упаковываются в кортеж. При вызове функции мы можем либо получить весь кортеж целиком, либо распаковать его в отдельные переменные.

Другие способы:

  • Список (list): Можно вернуть список, но это менее распространено, так как кортежи подразумевают неизменяемость возвращаемых значений, что часто является желательным поведением.
  • Словарь (dictionary): Можно вернуть словарь, если нужно присвоить возвращаемым значениям имена. Это полезно, когда возвращаемые значения имеют логическую связь с ключами словаря.

Пример со словарем:


def my_function(x, y):
    sum_result = x + y
    product_result = x * y
    return {'sum': sum_result, 'product': product_result}

result = my_function(5, 3)
print(result)            # Вывод: {'sum': 8, 'product': 15}
print(result['sum'])       # Вывод: 8
print(result['product'])   # Вывод: 15
  

Вывод: Кортеж - это наиболее часто используемый и рекомендованный способ возврата нескольких значений в Python, так как он лаконичен, эффективен и подчеркивает неизменяемость возвращаемых данных. Однако, если требуется именование возвращаемых значений, лучше использовать словарь.

0