2009-12-22 52 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}。