2015-11-03 49 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