Как в одну переменную записать несколько значений питон
Одна из приятных возможностей языка Python — использование последовательностей для односременного присваивания нескольких значений.
Пример 1.26. Присваивание сразу нескольких значений
>>> v = ('a', 'b', 'e') >>> (x, y, z) = v >>> x 'a' >>> y 'b' >>> z 'e'
v — кортеж из трех элементов и (x, y, z) — кортеж из трех элементов. Присваивание одного другому приводит к присваиванию каждого значения из v соответствующей переменной. |
Использовать эту возможность можно по-разному. У меня часто возникает необходимость присвоить переменным диапазон значений. В языке C, вы бы использовали тип enum и вручную перечислили каждую константу и ассоциированное с ней значение, что утомительно, особенно, если значения идут подряд. Python позволяет использовать встроенную функцию range совместно с множественным присваиванием.
Пример 1.27. Присваивание идущих подряд значений
>>> range(7) [0, 1, 2, 3, 4, 5, 6] >>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7) >>> MONDAY 0 >>> TUESDAY 1 >>> SUNDAY 6
Встроенная функция range возвращает список целых чисел. В простейшем случае она воспринимает в качестве аргумента верхний предел и возвращает список целых чисел от нуля до обозначенного придела, но не включая предельное значение. При желании вы можете указать нижний предел отличный от нуля и шаг отличный от еденицы. Выполните инструкцию print range.__doc__ для получения более подробной информации. | |
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY и SUNDAY — переменные, которые мы определяем. Этот пример взят из модуля calendar, печатающего календари, аналогично программе cal в UNIX. Этот модуль определяет целочисленные константы для дней недели. | |
Теперь каждая переменная имеет свое значение: MONDAY равна 0, TUESDAY — единице, и т. д. |
Множественное присваивание также полезно при использовании функций, возвращающих несколько значений в виде кортежа. Вы просто присваиваете их отдельным переменным. Так поступают многие стандартные библиотеки языка Python, включая модуль os, который обсуждается в главе 3.
- В How to Think Like a Computer Scientist показано, как использовать множественное присваивание для обмена значениями двух переменных.
Copyright © 2000, 2001, 2002 Марк Пилгрим
Copyright © 2001, 2002 Перевод, Денис Откидач
Как задать несколько значений в одну переменную?
Как мне значения Как дела и как дела поместить в одну переменную? Необходимо сравнить ее с другой переменной, если хоть один вариант совпадет, необходимо чтобы в if что-то произошло.
Отслеживать
51.6k 203 203 золотых знака 65 65 серебряных знаков 250 250 бронзовых знаков
задан 2 апр 2021 в 10:08
Dima Bro Lach Dima Bro Lach
1 1 1 золотой знак 1 1 серебряный знак 4 4 бронзовых знака
Для какой задачи? x = [«Как дела», «как дела»]; print(x[0], x[1]) — называется «список»
2 апр 2021 в 10:13
мне необходимо сравнить его с другой переменной если хоть одни вариант совпадет необходимо что бы что-то произошло (в if)
2 апр 2021 в 10:20
s = ‘KaK дЕлА’ → if ‘как дела’ in s.lower(): print(‘match’)
2 апр 2021 в 10:21
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
words = ("Как дела", "как дела")
А вообще коллекций разных в питоне много, какую лучше использовать зависит от сценария использования.
По дополнительному вопросу из комментария:
if "как дела" in words: print("Нашёл!")
Отслеживать
ответ дан 2 апр 2021 в 10:13
70.3k 5 5 золотых знаков 20 20 серебряных знаков 51 51 бронзовый знак
ТЫ ПРОСТО БОГ python. 2 раз помогаешь примного благодарен
2 апр 2021 в 10:26
@DimaBroLach Ну это азы питона, честно говоря, продолжайте изучать, там будет ещё сложнее и интереснее )
2 апр 2021 в 10:27
string = «как дела», «Как дела»
для вывода или использования одного из значений: print(string[0]) — тут выводится «как дела»
Отслеживать
ответ дан 2 апр 2021 в 10:15
475 2 2 серебряных знака 16 16 бронзовых знаков
мне необходимо сравнить его с другой переменной если хоть одни вариант совпадет необходимо что бы что-то произошло (в if)
Можно сделать так (если есть две переменных с несколькими значениями):
a = ["Как дела", "как дела"] b = ["Привет", "привет", "Как дела"] for itema in a: for itemb in b: if itema == itemb: # if-блок, который ищет совпадения pass # Тут всё, что необходимо выполнить
Или так (если есть одна переменная с несколькими значениями и другая с одним занчением):
a = ["Как дела", "как дела"] b = "Как дела" if b in a: # if-блок, который ищет совпадения pass # Тут всё, что необходимо выполнить
Как сделать вывод нескольких переменных python в одну строку
Вывести несколько переменных одной строкой в Python можно сделать несколькими способами:
- Перечислить эти переменные в функции print() через запятую
a = 'apple' b = 'orange' print(a, b) # => apple orange
- Использовать f-строки
a = 'apple' b = 'orange' print(f'a> b>') # => apple orange
- Использовать интерполяцию и задать шаблон для метода .format()
a = 'apple' b = 'orange' print('<> <>'.format(a, b)) # => apple orange
Как вернуть сразу несколько значений из функции в Python 3
Сегодня мы делимся с вами переводом статьи, которую нашли на сайте medium.com. Автор, Vivek Coder, рассказывает о способах возврата значений из функции в Python и объясняет, как можно отличить друг от друга разные структуры данных.
Фото с сайта Unsplash. Автор: Vipul Jha
Python удобен в том числе тем, что позволяет одновременно возвращать из функции сразу несколько значений. Для этого нужно воспользоваться оператором return и вернуть структуру данных с несколькими значениями — например, список общего количества рабочих часов за каждую неделю.
def hours_to_write(happy_hours): week1 = happy_hours + 2 week2 = happy_hours + 4 week3 = happy_hours + 6 return [week1, week2, week3] print(hours_to_write(4)) # [6, 8, 10]
Структуры данных в Python используются для хранения коллекций данных, которые могут быть возвращены посредством оператора return . В этой статье мы рассмотрим способы возврата нескольких значений с помощью подобных структур (словарей, списков и кортежей), а также с помощью классов и классов данных (Python 3.7+).
Способ 1: возврат значений с помощью словарей
Словари содержат комбинации элементов, которые представляют собой пары «ключ — значение» ( key:value ), заключенные в фигурные скобки ( <> ).
Словари, на мой взгляд, это оптимальный вариант для работы, если вы знаете ключ для доступа к значениям. Далее представлен словарь, где ключом является имя человека, а соответствующим значением — возраст.
people=
А теперь перейдем к функции, которая возвращает словарь с парами «ключ — значение».
# A Python program to return multiple values using dictionary # This function returns a dictionary def people_age(): d = dict(); d['Jack'] = 30 d['Kim'] = 28 d['Bob'] = 27 return d d = people_age() print(d) #
Способ 2: возврат значений с помощью списков
Списки похожи на массивы, сформированные с использованием квадратных скобок, однако они могут содержать элементы разных типов. Списки также отличаются от кортежей, поскольку являются изменяемым типом данных. То есть любой список может меняться.
Списки — одна из наиболее универсальных структур данных в Python, потому что им не обязательно сохранять однородность (в них можно включать строки, числа и элементы). Иногда списки даже используют вместе со стеками или очередями.
# A Python program to return multiple values using list def test(): str1 = "Happy" str2 = "Coding" return [str1, str2]; list = test() print(list) # ['Happy', 'Coding']
Вот пример, где возвращается список с натуральными числами.
def natural_numbers(numbers = []): for i in range(1, 16): numbers.append(i) return numbers print(natural_numbers()) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
Способ 3: возврат значений с помощью кортежей
Кортежи — это упорядоченные неизменяемые объекты в Python, которые обычно используются для хранения коллекций неоднородных данных.
Кортежи напоминают списки, однако их нельзя изменить после того, как они были объявлены. А еще, как правило, кортежи быстрее в работе, чем списки. Кортеж можно создать, отделив элементы запятыми: x, y, z или (x, y, z) .
На этом примере кортеж используется для хранения данных о сотруднике (имя, опыт работы в годах и название компании).
Bob = ("Bob", 7, "Google")
А вот пример написания функции для возврата кортежа.
# A Python program to return multiple values using tuple # This function returns a tuple def fun(): str1 = "Happy" str2 = "Coding" return str1, str2; # we could also write (str1, str2) str1, str2= fun() print(str1) print(str2) # Happy Coding
Обратите внимание: мы опустили круглые скобки в операторе return , поскольку для возврата кортежа достаточно просто отделить каждый элемент запятой (как показано выше).
Не забывайте, что кортеж можно создать с помощью запятой вместо круглых скобок. Круглые скобки требуются только в тех случаях, когда используются пустые кортежи или вам нужно избежать синтаксической неточности.
Чтобы лучше разобраться в кортежах, обратитесь к официальной документации Python 3 (документация приведена на английском языке. — Прим. ред.).
Ниже показан пример функции, которая использует для возврата кортежа круглые скобки.
def student(name, class): return (name, class) print(student("Brayan", 10)) # ('Brayan', 10)
Повторюсь, кортежи легко перепутать со списками (в конце концов, и те, и другие представляют собой контейнер, состоящий из элементов). Однако нужно помнить о фундаментальном различии: кортежи изменить нельзя, а списки — можно.
Способ 4: возврат значений с помощью объектов
Тут все так же, как в C/C++ или в Java. Можно просто сформировать класс (в C он называется структурой) для сохранения нескольких признаков и возврата объекта класса.
# A Python program to return multiple values using class class Intro: def __init__(self): self.str1 = "hello" self.str2 = "world" # This function returns an object of Intro def message(): return Intro() x = message() print(x.str1) print(x.str2) # hello world
Способ 5: возврат значений с помощью классов данных (Python 3.7+)
Классы данных в Python 3.7+ как раз помогают вернуть класс с автоматически добавленными уникальными методами, модулем typing и другими полезными инструментами.
from dataclasses import dataclass @dataclass class Item_list: name: str perunit_cost: float quantity_available: int = 0 def total_cost(self) -> float: return self.perunit_cost * self.quantity_available book = Item_list("better programming.", 50, 2) x = book.total_cost() print(x) print(book) # 100 Item_list(name='better programming.', perunit_cost=50, quantity_available=2)
Чтобы лучше разобраться в классах данных, обратитесь к официальной документации Python 3 (документация приведена на английском языке. — Прим. ред.).
Вывод
Цель этой статьи — ознакомить вас со способами возврата нескольких значений из функции в Python. И, как вы видите, этих способов действительно много.
Учите матчасть и постоянно развивайте свои навыки программирования. Спасибо за внимание!
- python 3
- python
- программирование для начинающих
- программирование
- функции
- data science
- Блог компании Plarium
- Python
- Программирование