3
我剛剛嘗試在包含許多隨機大括號的文本上使用Python的.format()
。它不起作用,因爲.format()
試圖替換單個大括號內的所有內容。做一些閱讀後,好像我有三個壞的選擇:替代舊字符串格式的Python
- 雙所有這些隨機括號 - 這看起來會比較難看
- 使用舊的字符串格式化
%
- 這看來似乎是走出去的風格 - 導入一個模板引擎 - 這看起來像是過度殺傷
什麼是最好的選擇?有更好的選擇嗎?
我剛剛嘗試在包含許多隨機大括號的文本上使用Python的.format()
。它不起作用,因爲.format()
試圖替換單個大括號內的所有內容。做一些閱讀後,好像我有三個壞的選擇:替代舊字符串格式的Python
%
- 這看來似乎是走出去的風格什麼是最好的選擇?有更好的選擇嗎?
這裏有一個簡單的方法:
>>> my_string = "Here come the braces : {a{b}c}d{e}f"
>>> additional_content = " : {}"
>>> additional_content = additional_content.format(42)
>>> my_string += additional_content
>>> my_string
'Here come the braces : {a{b}c}d{e}f : 42'
此外,您還可以創建一個函數來括號翻番:
def double_brace(string):
string = string.replace('{','{{')
string = string.replace('}','}}')
return string
my_string = "Here come the braces : {a{b}c}d{e}f"
my_string = double_brace(my_string)
my_string += " : {}"
my_string = my_string.format(42)
print(my_string)
輸出:
>>> Here come the braces : {a{b}c}d{e}f : 42
問自己一個很重要的問題。你需要什麼'.format()'作爲? – Tadeck
'%'確實強烈折舊?我仍然可以在我周圍看到它的用戶@@。 – Jokester
你可以插入'%s'等等,'替換它。 –