2015-09-22 2 views
0

Я новичок в python, и я пытаюсь создать программу. Мне нужно преобразовать строку в переменную, которая принимает другие строки.Строки для переменных, содержащих строки - Python

exec('%s = %d' % ("newVar", 87)) 

Это работает для целых чисел, но есть ли такие строки строк, как это для строк? Или есть другой метод?

Заранее благодарен!

+0

Возможный дубликат [Как сделать переменные переменные в Python?] (Http://stackoverflow.com/questions/1373164/how-do-i-do-variable-variables-in-python) – jonrsharpe

ответ

2

Используйте словарь.

d = {} 
d["newVar"] = 87 
d["foo"] = "Hello world!" 
print(d["foo"]) 
1

Я думаю, что вы на самом деле ищете является %r спецификатором, который будет работать как для целых чисел и строк:

>>> exec('%s = %r' % ('var1', 2)) 
>>> exec('%s = %r' % ('var2', 'foo')) 
>>> var1 
2 
>>> var2 
'foo' 

При этом используется repr esentation параметра, а не его s Tring или d ecimal версия:

>>> '%s = %r' % ('var1', 2) 
'var1 = 2' 
>>> '%s = %r' % ('var2', 'foo') 
"var2 = 'foo'" 

Вы можете прочитать больше о различных спецификаторах в the documentation.

Однако, «переменные переменные», как это редко бывает подходящим делом - как указано в Kevin's answer, словарь - гораздо лучший подход.

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