2015-11-03 48 views
0
#-*- coding:utf-8 -*- 
l = ['cd\xd9>+O\x17 \xafbQ\x85\x86\xaaPo\xd8m', 'cd\xc3k\x9b\x1d\x08\x84MXr0!\xd1\xec\x86\xab\x01', 'cw\x1c\x9e\x08\x05`\x8f\x9dfd\xd0\xbfS7\x9dZ\x8f'] 
print l[0] 

和輸出當我打印清單的元素,輸出是奇怪

enter image description here

爲什麼輸出這麼奇怪?
我希望當我打印l[0]時,我可以看到'cd\xd9>+O\x17 \xafbQ\x85\x86\xaaPo\xd8m',我該怎麼辦?

+1

您確定要' 'CD \ x9'',而不是'' CD \\ x9''與\\取代\? – inspectorG4dget

+0

是的,你應該改變你的列表元素看起來像我的(注意雙反斜槓)。此外,您可以使用反引號('''鍵'左側的'\''鍵)在註釋中顯示代碼。 – inspectorG4dget

+0

當然,我從其他地方得到字符串,並將它們放在一個列表中,然後我想逐個打印元素,我發現我不能 – tly

回答

1

如圖

l = ['cd\\xd9>+O\\0x17 \\xafbQ\\x85\\x86\\xaaPo\\xd8m', 'cd\\xc3k\\x9b\\x1d\ 
\x08\\x84MXr0!\\xd1\\xec\\x86\\xab\\x01', 'cw\\x1c\\x9e\\x08\\x05`\\x8f\\x9dfd\\ 
xd0\\xbfS7\\x9dZ\\x8f'] 

print l[0] 
cd\xd9>+O\x17 \xafbQ\x85\x86\xaaPo\xd8m 
+0

如何更換?我使用l [0] .replace('\\ x','\\\\ x'),它無法工作 – tly

+0

更簡單的解決方法是將字符串更改爲原始字符串。如果你有'l =''cd'把它改成'l = [r'cd' ...並且同樣給你的其他字符串加上'r'前綴。 – tripleee

+0

由於列表中有近1000個元素,所以如何通過使用代碼添加'r'? – tly

0

\x**對應於一個不可打印的ASCII字符,儘管取決於您的終端設置,它可能會嘗試打印它,這就是爲什麼你會得到亂碼的原因。

+0

感謝您的回答,它讓我明白問題的原因。我現在就是想辦法解決它 – tly