2009-12-22 77 views
4

Python 2.6定义了str.format(…),它来自Python 3.0,优于旧的%风格的字符串格式。但是,看看“mini-language”,似乎不可能将}字符用作填充字符。Python格式字符串“}”填充

这似乎是一个奇怪的遗漏给我。是否有可能以某种方式逃避该角色并将其用作填充角色?

我知道我可以用一些独特的到的字符串的字符填充,然后使用str.replace,或任意数量的其他类似技巧来达到同样的效果,但感觉就像一个黑客,我...

编辑:什么我以后是一样的东西

>>> "The word is {0:}<10}".format("spam") 
'The word is spam}}}}}}' 
+0

是不是这样:“为什么我不能在我的C字符串中使用\ 0?”我的意思是,这个问题有权被问到,但是重要的边缘案例真的很深奥。 – Boldewyn 2009-12-22 09:43:45

+0

如果是''',你会自动生成Lisp代码,也许,确定。但卷曲的大括号? – Boldewyn 2009-12-22 09:44:25

+1

是的,它很深奥,并且可能永远不会被使用。但我可以很好奇,对吧? (C字符串中的\ 0是可能的,你只是逃避了\;对我来说这似乎很奇怪,在这种情况下没有任何可用的逃脱)。 – 2009-12-22 10:27:28

回答

7

你总是可以指定它为像这样单独的参数:

>>> "The word is {0:{1}<10}".format("spam", "}") 
'The word is spam}}}}}}' 

看到,它在被传递和用于代替{1}。