Python 3.6 - Может ли значение переменной использоваться как часть значения ключа в Dict? - PullRequest
0 голосов
/ 19 мая 2018

Я использую Python 3.6

Я могу использовать функцию .format для вставки значения переменной как части нового значения переменной, как показано ниже:

var_1 = "First_Var"

var_2 = "Second_Var_{}".format(var_1)

print (var_1, var_2)

Это, когдаrun, печатает:

First_Var Second_Var_First_Var

Я хотел бы иметь возможность вставлять значения var_1 и var_2 в качестве значений в dict согласно приведенному ниже коду:

var_1 = "First_Var"

var_2 = "Second_Var_{}".format(var_1)

dict_with_inserts = {'First_Var': '{}_inserted', 'Second_Var': '{}_inserted'}.format(var_1, var_2)

print (dict_with_inserts)

Когда я запускаювыше, я получаю следующее сообщение об ошибке:

AttributeError: 'dict' object has no attribute 'format'

Так что, похоже, я не могу использовать функцию .format на dicts.Есть ли альтернативный способ сделать это или невозможно вставить значение переменной в Python dict?

Любые примеры или помощь будут высоко оценены.

Ответы [ 4 ]

0 голосов
/ 20 мая 2018

В Python 3.6 вы также можете использовать буквенные строки (также называемые f-строками):

var_1 = 'teststring'

mydict = {'first_var': f'{var_1}_inserted'}

print(mydict)
>> {'first_var': 'teststring_inserted'}
0 голосов
/ 19 мая 2018

Это то, что вы ищете?

var_1 = "First_Var"
var_2 = "Second_Var_{}".format(var_1)

dict_with_inserts = {'First_Var': '{}_inserted'.format(var_1), 'Second_Var': '{}_inserted'.format(var_2)}

print (dict_with_inserts)
0 голосов
/ 19 мая 2018

. формат функция работает только с строками

Однако это приведет к тому же результату, что и вы:

var_1 = "First_Var"

var_2 = "Second_Var_{}".format(var_1)

dict_with_inserts = {'First_Var': '{}_inserted'.format(var_1), 'Second_Var': '{}_inserted'.format(var_2)}

print (dict_with_inserts)
0 голосов
/ 19 мая 2018

Вы можете сделать это так:

var_1 = "First_Var"

var_2 = "Second_Var_{}".format(var_1)

dict_with_inserts = {'First_Var': '{}_inserted'.format(var_1), 
'Second_Var': '{}_inserted'.format(var_2)}

print (dict_with_inserts)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...