<p>我尝试在Python2.7中处理包含非ASCII字符的字符串。
具体来说,我希望打印以下列表中的元素,以便显示它们的外部表示:</p>
<pre><code>foo = "mädchen wörter mutter".split()
</code></pre>
<p>像这样:</p>
^{pr2}$
<p>只是我需要用功能性的风格。但是如果我不使用<code>print</code>尝试以下操作,则显示的是内部表示:</p>
^{3}$
<p>我尝试过像这样使用<code>print</code>,但显然它也不起作用,因为它打印的是整个列表而不是每个单独的元素:</p>
<pre><code>>>> print [x for x in foo]
['m\xc3\xa4dchen', 'w\xc3\xb6rter', 'mutter']
</code></pre>
<p>将<code>print</code>放在方括号内会返回语法错误:</p>
<pre><code>>>> [print x for x in foo]
File "<stdin>", line 1
[print x for x in foo]
^
SyntaxError: invalid syntax
</code></pre>
<p>然后我尝试使用一个函数来打印<code>x</code>:</p>
<pre><code>>>> def show(x):
... print(x)
...
>>> [show(x) for x in foo]
mädchen
wörter
mutter
[None, None, None]
</code></pre>
<p>除了结尾的<code>[None, None, None]</code>(这是从哪里来的?)之外,这几乎可以工作。在</p>
<p>有没有一种功能性的方法可以输出这样的内容:</p>
<pre><code>>>> [*do_something* for x in foo]
mädchen
wörter
mutter
</code></pre>
<p>谢谢你的帮助!在</p>
<pre><code>def show(x):
print(x)
[show(x) for x in foo]
mädchen
wörter
mutter
[None, None, None]
</code></pre>
<p>如果你把它写在脚本里就行了。当您在解释器中编写这个函数时,每次调用函数时,都会打印值,最后也会打印列表。如果在.py文件中编写相同的代码,则不会打印列表。在</p>