Не удается отформатировать строку для печати - PullRequest
0 голосов
/ 19 ноября 2018

Как преобразовать приведенный ниже код из более старого / менее читаемого стиля% s% (value) в метод f '{value} более нового формата.Можно ли зациклить и использовать формат в Python?

data = {'123':'asd','234':'sdf'}
string = ''.join(' %s="%s"' % (key, value) for key,value in data.items())
print(string)

Вывод:

123="asd" 234="sdf"

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

IIUC, вы хотите преобразовать форматирование строки в стиле % в более новый стиль f-строк:

print(' '.join(f'{k}="{v}"' for k,v in data.items())

Выход:

'123="asd" 234="sdf"'
0 голосов
/ 19 ноября 2018

По большей части они эквивалентны. Код на repl.it :

data = {'123':'asd','234':'sdf'}

print("-- % --")
string1 = ''.join(' %s="%s"' % (key, value) for key,value in data.items())
print(string1)

print("\n-- .format() --")
string2 = ''.join([' {}="{}"'.format(key, value) for key, value in data.items()])
print(string2)

print("\n-- f'string' --")
string3 = ''.join([f' {key}="{value}"' for key, value in data.items()])
print(string3)

Из:

-- % --
 123="asd" 234="sdf"

-- .format() --
 123="asd" 234="sdf"

-- f'string' --
 123="asd" 234="sdf"
0 голосов
/ 19 ноября 2018

Да, это возможно:

>>> data = {'123':'asd','234':'sdf'}
>>> string = ''.join(f' {key}="{value}"' for key,value in data.items())
>>> string
' 123="asd" 234="sdf"'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...