Добавление дополнительных символов в поле ключа форматирования строки - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь создать базовую таблицу ключ / значение, которая выглядит следующим образом:

someKey:               some info
aReallyLongKey:        more info
somthingElse:          other info

Без двоеточий это действительно легко:

formatter = "{key:<25}{value}"

for k,v in myDict.items():
    print(formatter.format(key=k, value=v))

Однако это будетне включать ":" после ключа.Я хочу что-то вроде этого (это не работает):

formatter = "{key+':':<25}{value}"

По сути, я хочу добавить кое-что к ключу, чтобы я получил: formatter.format(key=k+":", value=v), нос добавленным ":" в строке formatter.

Я попытался выполнить вложение, но не смог заставить его работать.Есть ли элегантный, родной, Pythonic способ добавить ":" к ключу в формататоре строк, чтобы я все еще мог использовать форматирование <25 для всей части "ключ:"?

1 Ответ

1 голос
/ 28 сентября 2019

Если вы используете python 3.6+, вы можете легко сделать это, используя f-strings:

for k,v in myDict.items():
    print(f"{f'{k}:':<25}{v}")
    #or
    print(f"{k + ':':<25}{v}")

В противном случае просто добавьте двоеточие перед его форматированием (как вы и просили):

formatter = "{key:<25}{value}".format
for k,v in myDict.items():
    print(formatter(key=k+':', value=v))
...