Python, строка (состоящая из переменной и строки, объединенная), используемая в качестве имени новой переменной?

1

Я искал это, но немного подхожу к тому, как конкретно делать то, что я пытаюсь сделать. Я хочу соединить строку (я думаю, это будет строка в этом случае, поскольку она имеет переменную и строку), например, ниже, где мне нужно использовать переменную, состоящую из строки для вызова списка с индексом (из другой переменной). Я упростил свой код ниже, чтобы просто показать соответствующие части, их часть макрос, который заменяет значения:

toreplacetype = 'type'
toreplace_indx = 5
replacement_string = 'list'+toreplacetype[toreplace_indx]

поэтому... Я пытаюсь сделать строку на последней строке равной фактическому имени переменной:

replacement_string = listtype[5]

Любые советы о том, как это сделать, оцениваются

EDIT:

Чтобы объяснить далее, это для макроса, который является своего рода системой шаблонов, где я указываю вещи в python script, которые я хочу заменить на определенные значения, поэтому я использую regex для этого. Поэтому, когда я что-то сопоставляю, я хочу, чтобы иметь возможность заменить его из определенного значения в списке, но, например, в шаблоне у меня есть {{type}}, поэтому я извлекаю это, но тогда мне нужно манипулировать как выше, так что я могу использовать извлеченное значение "type" для вызова определенного значения из списка (например, из списка, называемого "listtype" ) (существует более 1 списка, поэтому мне нужно найти тот, который называется "listtype", listtype ", поэтому я просто хочу конкатенировать, как указано выше, чтобы получить это, на основе полученного мной значения с помощью regex

  • 0
    Я пытаюсь быть уверенным в методе ignacio ниже, будет ли это правильно: vars = {'list': 'list' + toreplacetype}; replace_string = vars ['list'] [5]?
Теги:
variables
concatenation

3 ответа

1
Лучший ответ

Это не рекомендуется. Вместо этого используйте dict.

vars['list%s' % toreplacetype][5] = ...
  • 0
    Не могли бы вы уточнить немного, я не уверен, как именно я мог бы использовать это для вызова списка, например, списка с именем "listtype" (с index5)
  • 0
    vars = {} ; vars['listtype'] = []
Показать ещё 3 комментария
1

Хмм...

globals()['list%s'% toreplacetype][toreplace_indx]
  • 0
    Ладно, мне кажется, что подобные вещи продолжают возвращаться к globals () или localals () для меня, поэтому я предполагаю, что в python это способ для такого рода вещей, я буду изучать глобальные слова более подробно, чем изучать модули и выходы из этого
  • 0
    globals просто возвращает объект в глобальной области видимости. Я рекомендую использовать метод Игнасио, потому что он избегает глобального пространства имен.
0
replacement_string = 'list'+toreplacetype+'['+str(toreplace_indx)+']'

будет выдавать список [5] при его печати. ​​

Вам нужно в основном разбить его на 5 частей: 1 строковая переменная, 3 строки и int casted to string.

Я думаю, что это то, о чем вы просите?

  • 0
    Я должен был упомянуть больше об этом, я думаю .. (я отредактирую выше, чтобы объяснить больше) .. Я хочу это: 'list' + toreplacetype [toreplace_indx], чтобы равняться имени переменной listtype [5]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню