我有一個字符串像如何用一個變量替換%S在python
strTemp='i don\'t want %s repeat the %s variable again %s and again %s'%('aa','aa','aa','aa')
我想與「AA」,以取代所有%s的,所以我必須重複多次的「AA」我怎麼能告訴我只想使用同一個變量來代替所有的%S程序,所以我不必鍵入倍
變量我有一個字符串像如何用一個變量替換%S在python
strTemp='i don\'t want %s repeat the %s variable again %s and again %s'%('aa','aa','aa','aa')
我想與「AA」,以取代所有%s的,所以我必須重複多次的「AA」我怎麼能告訴我只想使用同一個變量來代替所有的%S程序,所以我不必鍵入倍
變量你可以使用命名格式參數語法:
strTemp='i don\'t want %(key)s repeat the %(key)s variable again %(key)s and again %(key)s' % {
'key': 'replacement value',
}
沒有太多更好的必然罪如果您必須重複四次密鑰,但是如果您的替換值很長,或者您的副作用是確實不想多做一次,那麼這是一個不錯的選擇。
%操作符不鼓勵。改用str.format
。
strTemp='i don\'t want {0} repeat the {0} variable again {0} and again {0}'.format('aa')
,如果你真的有很多重複和不想鍵入{0}
或%(var)s
你可以考慮一個很少使用(placeholder-)字符,它被替換,如:
p='µ µµ µµµ µµµµ µµµµµ {1}'.replace('µ','{0}').format(' muahaha ', 'duh')
或單個變量變量:
strTemp='i don\'t want µ repeat the µ variable again µ and again µ'.replace('µ','aa')
爲了獲得最大的壓縮率和完整的不可讀性,您可以使用'reduce'將最小尺寸開銷(只需指定函數和參數列表)的大量替換鏈接在一起。我實際上編寫了一個腳本來壓縮字符串文字一次(它也使用其他技巧來減小大小)。 – Antimony
好主意! ;-)但是我已經超出了OP的原始意圖,另一方面它是永遠不會錯誤的提醒這樣不錯的包括電池;-) –
@Antimony:btw我用我的編輯器(VIM)的能力,這些多餘的類型: inoremap¹{0} inoremap²{1} .... ;-) –
爲什麼'%'不鼓勵? – Tim
'{}'語法更新更炫。你可以用''''''語法來做一堆事情。我的印象是從Python 3中刪除'%'語法,但這可能是錯誤的。 – zwol
我喜歡'%'語法:在格式中輸入令人討厭 –