擅长:python、mysql、java
<p>这里一切都很好,你只是从API中假设了错误的东西。你知道吗</p>
<p>打印字符串以外的对象时,首先将其转换为字符串。在这种情况下,列表将转换为表示Python表达式的字符串,当输入该表达式时,其计算结果将等于一个列表。这是显示列表最有用的方法:您可以准确地看到其中的内容,有时它只是转义的。你知道吗</p>
<p>比较:</p>
<pre><code>>>> a = ['test\'test\"test', 0, '0']
>>> print a[0]
test'test"test
>>> print a
['test\'test"test', 0, '0']
</code></pre>
<p>字母<code>ü</code>在UTF-8中编码为两个字节:<code>\xc3\xbc</code>。因此,如果您在UTF-8终端中打印字符串<code>'G\xc3\xbcnther'</code>,您将看到<code>Günther</code>。如果您将其保存到一个文件中并在一个合适的文本编辑器中打开该文件,它将显示<code>Günther</code>(可能您需要稍微戳一下编码设置)。无论出于何种目的,这都是在bytestring中存储单词“Günther”的最佳方法。你知道吗</p>
<p>如果你想以一种好的方式打印一个列表,你可以自己格式化它。例如,如果它是一个字符串列表,比如在您的示例中,<code>join</code>会很好地工作:</p>
<pre><code>>>> print '; '.join(['G\xc3\xbcnther', 'Santher'])
Günther; Santher
</code></pre>
<p>(顺便说一下:你不能对bytestring进行编码,它已经被编码了。不过,您可以对其进行解码。)</p>