Можете ли вы привести строку в верхний регистр во время форматирования - PullRequest
0 голосов
/ 06 марта 2019

Мотивация

Предположим, у вас есть строка, которая используется дважды в одной строке.Однако в одном случае он выше, а в другом - ниже.Если используется словарь, кажется, что решением было бы добавить новый элемент в верхнем регистре.


Предположим, у меня есть строка Python, готовая для форматирования как:

string = "{a}_{b}_{c}_{a}"

С желаемым выводом:

HELLO_by_hi_hello

У меня также есть готовый словарь:

dictionary = {a: "hello", b: "bye", c: "hi"}

Без взаимодействия со словарем дляустановить новый элемент d как "HELLO", такой как:

dictionary['d'] = dictionary['a'].upper()
string = "{d}_{b}_{c}_{a}"
string.format(**dictionary)
print(string)
>>> HELLO_bye_hi_hello

Есть ли способ установить элемент a всегда в верхнем регистре в одном случае строки?Например что-то вроде:

string= "{a:upper}_{b}_{c}_{a}"
string.format(**dictionary)
print(string)
>>> HELLO_bye_hi_hello

1 Ответ

1 голос
/ 06 марта 2019

Нет, вы не можете этого сделать. В простейшем решении вы можете написать лямбду, чтобы заглавными буквами были значения в вашей строке. Или вы можете создать подкласс strnig.Formatter, если вы действительно хотите достичь своей цели таким образом.

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

...