如何将下面的代码从较旧/可读性较差的%s%(值)打印转换为f'{value}较新的格式方法。是否可以循环使用python中的.format?
data = {'123':'asd','234':'sdf'}
string = ''.join(' %s="%s"' % (key, value) for key,value in data.items())
print(string)
输出:
123="asd" 234="sdf"
答案 0 :(得分:1)
是的,有可能:
>>> data = {'123':'asd','234':'sdf'}
>>> string = ''.join(f' {key}="{value}"' for key,value in data.items())
>>> string
' 123="asd" 234="sdf"'
答案 1 :(得分:0)
您想将%
样式的字符串格式转换为新的f字符串样式的IIUC:
print(' '.join(f'{k}="{v}"' for k,v in data.items())
输出:
'123="asd" 234="sdf"'
答案 2 :(得分:0)
在大多数情况下,它们是等效的。 Code on 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"