[英]Most pythonic way for formatting strings
問題:
我需要從不同的部分( nbsp = u'\\xa0', data['text'], delimeter
)創建一個復雜的字符串。
我知道3種常見的解決方案:
res = '*{nbsp}{nbsp}{nbsp}{nbsp}{0}*{1}'.format(data['text'], delimeter, nbsp=nbsp) # seems unicode error-prone way
res = '*' + 4 * nbsp + data['text'] + '*' + delimeter
res = ''.join(['*', 4 * nbsp, data['text'], '*', delimeter])
舊的%
字符串格式化方法還有另一種方法,但看起來它已成為一種傳統方法。
那么,在這種情況下,哪一個最適合pythonic
?
您可以通過統一使用關鍵字參數來改進您的第一種方法。
u'*{nbsps}{text}*{delimiter}'.format(nbsps=4*nbsp,
text=data['text'],
delimiter=delimiter)
格式字符串清楚地表明它包含三個更復雜的塊,每個塊在unicode.format
的參數中以相同的方式定義。
據我了解, “ Pythonic”的意思是“一年后看不到代碼就可以立即解密” 。 我會戴上下面的帽子:
res = "*%s%s*%s" % (4*nbsp, str(data["text"]), delimiter)
即使您認為它是舊的,因為它是可以理解的 。 閱讀並與反編譯以上建議進行比較。
第三個不是很好的解決方案,但是前兩個足夠好。 但我更喜歡將其混合並嘗試:
str("*"+4*"{0}"+"{1}"+"*"+"{2}").format(nbsp, data['text'], delimeter)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.