我想從 python 中的字符串列表中刪除額外的 '\'。例如,如果我的列表是這樣的:cmd = ['a', 'b', '{word}\\\\*', 'd']應(yīng)該是這樣的:cmd = ['a', 'b', '{word}\\\*', 'd'] # I need this exact result如果我在單獨(dú)打印每個(gè)字符串的同時(shí)遍歷這個(gè)列表,我就能得到字符串“{word}\*”。同時(shí),將其作為整個(gè)列表打印時(shí),它顯示為:['a', 'b', '{word}\\\\*', 'd']程序:import recmd = ['a', 'b', '{word}\\\\*', 'd']for i in cmd: print("val : ", i)print("whole list : ", cmd)輸出:C:\Users\Elcot>python test.pyval : aval : bval : {word}\\*val : dwhole list : ['a', 'b', '{word}\\\\*', 'd']預(yù)期結(jié)果:whole list : ['a', 'b', '{word}\\*', 'd']
2 回答

慕斯709654
TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以將字符串轉(zhuǎn)換為字節(jié),然后使用bytes.decode
withunicode_escape
作為編碼的方法來取消轉(zhuǎn)義給定的字符串:
cmd = [bytes(s, 'utf-8').decode('unicode_escape') for s in cmd]

FFIVE
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您確實(shí)在處理賦值語句,那么您應(yīng)該了解Python 中的原始字符串。原始字符串文字使用這樣的r前綴:
rstr = r"raw string"
regex = r"\(.*\)"
原始字符串的目的是減少使用反斜杠字符時(shí)所需的轉(zhuǎn)義量;它旨在與其他處理引擎(如 Windows 路徑或正則表達(dá)式)一起使用,其中處理引擎將執(zhí)行自己的反斜杠處理。原始字符串中的轉(zhuǎn)義序列要少得多。
您的示例'word\\\\*'通常會word\\*被字符串反斜杠轉(zhuǎn)義機(jī)制轉(zhuǎn)換為。但是,如果您想要一個(gè)正好包含三個(gè)反斜杠的字符串,您可以說r'word\\\*'.
添加回答
舉報(bào)
0/150
提交
取消