我正在尝试格式化一个字符串,其中相同的变量有时需要添加新的行和制表符,而其他时候则不需要。
我没有看到任何其他选项,但使用两个不同的变量,您认为这可以使用相同的变量来实现吗?
示例字符串 实际的字符串很长,我有可能变量,有时不需要格式化,有时需要应用新行和制表符。
list 1,2,3
list
1,
2,
3
以上我想实现以下输出。
values = ",".join(["1","2","3"])
print test_str.format(values=values)
当前的方法,这是行不通的。
values
如果我将values1
更改为values2
和values1 = ",".join(["1","2","3"])
values2 = ",\n\t".join(["1","2","3"])
print test_str.format(values1=values1, values2=values2)
,那么我可以应用不同的格式。
try...finally
答案 0 :(得分:2)
这可能是你想要的。
>>> test_str = '''
... list {}
... list
... {}
... '''
>>> values
['1', '2', '3']
>>> print(test_str.format(','.join(values), ',\n\t'.join(values)))
list 1,2,3
list
1,
2,
3
附录:
请注意,该函数以新的f字符串的形式创建它返回的字符串,从而允许替换函数或其他表达式返回的值。
>>> def a_string(v1, v2):
... def f1(val):
... return '---'+val
... def f2(val):
... return '+++'+val
... return f'''{f1(v1)} is bigger than {f2(v2)}'''
...
>>> a_string('2', '1')
'---2 is bigger than +++1'
答案 1 :(得分:-1)
您可以使用一个函数来仅使用一组值,如下所示
Grid