Списки

Возврат нескольких значений из функции

Python позволяет вам возвращать из функции несколько значений. 

Для этого необходимо вернуть структуру данных, содержащую эти несколько значений. Например, список количества миль, которые надо пробежать за неделю.

def miles_to_run(minimum_miles):
    week_1 = minimum_miles + 2
    week_2 = minimum_miles + 4
    week_3 = minimum_miles + 6
    return [week_1, week_2, week_3]

print(miles_to_run(2))
# result: [4, 6, 8]

Структура данных — контейнер, хранящий однотипные данные. Эти данные могут быть возвращены из функций. В этой статье мы узнаем, как возвращать несколько значений из структур вроде кортежа, списка и словаря

Кортежи

Кортеж — упорядоченная, неизменяемая последовательность. То есть, значения внутри кортежа мы изменять не можем. 

Мы можем использовать кортеж, например, для хранения информации о человеке (о его имени, возрасте, месте жительства). 

nancy = ("Нэнси", 55, "Чикаго")

Пример функции, которая возвращает кортеж:

def person():
    return "Боб", 32, "Бостон"
 
print(person())
# result: ('Боб', 32, 'Бостон')

Заметьте, что в предложении return мы не использовали круглые скобки для возврата значения. Это потому, что кортеж можно вернуть, просто отделив каждый элемент запятой, как в нашем примере. 

«Кортеж образуют запятые, а не круглые скобки» — так написано в документации. Но для создания пустых кортежей круглые скобки необходимы. Также это помогает избежать путаницы.

Пример функции, которая использует () для возврата кортежа: 

def person(name, age):
    return (name, age)
print(person("Генри", 5))
#result: ('Генри', 5)

Список

Список — упорядоченная, изменяемая последовательность. Элементы списка можно изменять. 

Список с городами: 

cities = ["Бостон", "Чикаго", "Джексонвилл"]

Или с оценками: 

test_scores = [55, 99, 100, 68, 85, 78]

Взгляните на функцию ниже. Она возвращает список, содержащий десять чисел. 

def ten_numbers():
    numbers = []
    for i in range(1, 11):
        numbers.append(i)
    return numbers
 
print(ten_numbers())
#result: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Еще один пример. В этот раз мы передаем несколько аргументов в функцию.

def miles_ran(week_1, week_2, week_3, week_4):
    return [week_1, week_2, week_3, week_4]
 
monthly_mileage = miles_ran(25, 30, 28, 40)
print(monthly_mileage)
#result: [25, 30, 28, 40]

Спутать кортеж со списком довольно просто. Все-таки обе структуры хранят несколько значений. Важно запомнить ключевые отличия: 

  • Кортежи изменять нельзя.
  • Списки изменять можно.

Словари

Словарь — структура, в которой хранятся пары значений в виде «ключ-значение». Заключены эти значения в фигурные скобки {}. Каждому ключу соответствует свое значение.

Рассмотрим пример. В следующем словаре содержатся имена сотрудников. Имя сотрудника — ключ, его должность — значение. 

employees = {
    "Джек": "Инженер",
    "Мэри": "Менеджер",
    "Генри": "Писатель",
}

Пример функции, возвращающей словарь в виде «ключ-значение».

def city_country(city, country):
    location = {}
    location[city] = country
    return location
 
favorite_location = city_country("Бостон", "США")
print(favorite_location)
# result: {'Бостон': 'США'}

В примере выше «Бостон» — ключ, а «США» — значение. 

Мы проделали долгий путь… Подытожим — вы можете вернуть несколько значений из функции и существует несколько способов сделать это.

artur

Recent Posts

Библиотека Pydantic: валидация данных на Python

Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…

6 дней ago

7 наилучших библиотек визуализации Python на 2024 год

Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…

1 неделя ago

Как преобразовать строку в байты в Python

В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…

3 недели ago

Что такое Werkzeug?

В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…

3 недели ago

Как прибавить дни, месяцы и годы к дате в Python

При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…

4 недели ago

Социальная аутентификация в приложении на Flask

В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…

2 месяца ago