2014-11-25 3 views
0

Есть ли способ динамически создавать строки в Python?Динамически создавать переменные

Например, из:

var = 5 

Мне нужно создать:

string_00 = "" 
string_01 = "" 
string_02 = "" 
string_03 = "" 
string_05 = "" 

Заранее спасибо за любой намек.

+0

Боюсь, я не имею ни малейшего понятия, что вы пытаетесь спросить. Попробуйте добавить более подробную информацию к своему вопросу, чтобы она стала ответственной. – ApproachingDarknessFish

+2

Подсказка: используйте массив. – Josh

+0

Еще лучше: используйте список. :) –

ответ

0

Как сказал iThink, вы, вероятно, захотите использовать массив.

Если вам действительно нужно динамически создавать переменные, вы можете использовать

globals()['string_01']= '' 
+0

Мне нужно динамически создавать x число имен строк в зависимости от значений, хранящихся в другой переменной. – Sinserif

+0

@Sinserif: Я оставлю это вам, чтобы выяснить, как использовать цикл. Может понадобиться [учебник по python] (https://docs.python.org/3.4/tutorial/). –

+1

s/array/list/ Не давайте плохих советов, как изменение глобальных переменных() .... :(Почти никто не должен динамически создавать переменные. –

4

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

Чтобы подойти к этой проблеме, вы используете одну переменную, которая вам известна, и сделайте ее своего рода контейнером. Затем вы помещаете строки в контейнер и работаете с ними, используя имя контейнера.

Это использует словарь под названием «струна», и помещает динамическое число строк в нем:

var = 5 

strings = {} 
for i in range(var): 
    strings[i] = "" 

Вы могли бы добраться до них по отдельности с strings[4] или найти сколько есть с len(strings) или доступом их всех в списке с strings.values().

Вам все равно придется планировать, что делать, потому что вы не сможете использовать «строку 4», если вы не знаете, сколько из них будет или что будет в них в то время вы пишете код. Это зависит от того, какую проблему вы пытаетесь решить, относительно того, что является хорошим подходом к решению этой проблемы. Возможно, инициализация n пустые строки - отличный подход.

+0

Спасибо, очень признателен. – Sinserif

Смежные вопросы