генерация имен переменных на лету в python
Могу ли я сделать это в цикле или чем-то вместо того, чтобы вручную назначать price1 = prices[0] , price2 = prices[1] и т.д.
ИЗМЕНИТЬ
Многие люди предложили мне написать причину для этого. Во-первых, были времена, когда я думал, что это может быть более удобно, чем использование списка. Я не помню точно, когда, но я думаю, что я думал об использовании этого, когда есть много уровней гнездования. Например, если у вас есть список списков списков, определение переменных вышеописанным образом может помочь уменьшить уровень вложенности. Во-вторых, сегодня я думал об этом, пытаясь научиться использовать Pytables. Я просто столкнулся с Pytables, и я увидел, что при определении структуры таблицы имена и типы столбцов описываются следующим образом:
Если у меня есть 100 столбцов, типичное имя каждого столбца кажется очень большим. Итак, я задавался вопросом, есть ли способ генерировать эти имена столбцов на лету.
Как сделать чтоб программа автоматически создавала переменные в Python?
И так. Всем привет. Сразу к вопросу.
И так есть функция create_input(name, input). Name это имя переменной, а input это фраза (типо myvar = input(«You are a boy? <- это сам аргумент input»)). Программа должна создать такой input, но с данными, которые введёт пользователь.
Был такой код:
Я пробовал, вроде работает, но он вместо You are a boy пишет: built-in function input и просит ввести что-то, и пишет в консоли myvar и built-in function input вместо You are a boy? Как это исправить? И сделать чтобы выводит не You are a boy? А сам ответ к примеру Yes, как то так, спасибо заранее)
Вопрос Автоматическое создание переменных в python
В Python нет такой возможности создавать переменные автоматически. Вы должны явно указывать имена переменных и присваивать им значения.
Однако, в Python есть динамическая типизация, то есть вы можете создавать переменные и присваивать им значения во время выполнения программы. Например, вы можете написать такой код:
var = input("Введите первое число: "
var1 = input("Введите второе число: "
print("Первое число:", var)
print("Второе число:", var1)
Этот код запрашивает у пользователя ввод двух чисел и печатает их на экране. Переменные var и var1 создаются автоматически при выполнении программы и принимают значения, введенные пользователем.
How can you dynamically create variables? [duplicate]
I want to create variables dynamically in Python. Does anyone have any creative means of doing this?
![]()
8 Answers 8
Unless there is an overwhelming need to create a mess of variable names, I would just use a dictionary, where you can dynamically create the key names and associate a value to each.
There are also some interesting data structures in the collections module that might be applicable.
globals() returns a dictionary of the module’s variables. You can create a new variable by creating a key on that dictionary:
Use the exec() method to run arbitrary code. For example, say you have a dictionary and you want to turn each key into a variable with its original dictionary value, you can do the following:
Stuffing things into the global and/or local namespaces is not a good idea. Using a dict is so some-other-language-ish . d[‘constant-key’] = value just looks awkward. Python is OO. In the words of a master: «»»Namespaces are one honking great idea — let’s do more of those!»»»
![]()
![]()
Keyword parameters allow you to pass variables from one function to another. In this way you can use the key of a dictionary as a variable name (which can be populated in your while loop). The dictionary name just needs to be preceded by ** when it is called.
Without ** , kwargs is just a dictionary:
NOTE: This should be considered a discussion rather than an actual answer.