Python 如何以函数式打印带有非ASCII字符的列表元素?

Python 如何以函数式打印带有非ASCII字符的列表元素?,python,python-2.7,utf-8,non-ascii-characters,python-unicode,Python,Python 2.7,Utf 8,Non Ascii Characters,Python Unicode,我试图在Python2.7中处理包含非ASCII字符的字符串。 具体而言,我希望打印以下列表中的元素以显示其外部表示形式: foo = "mädchen wörter mutter".split() 像这样: >>> for x in foo: ... print x ... mädchen wörter mutter 除了我需要用功能性的方式。但如果我不使用print,尝试以下操作,则显示的是内部表示: >>> [x for x in foo]

我试图在Python2.7中处理包含非ASCII字符的字符串。 具体而言,我希望打印以下列表中的元素以显示其外部表示形式:

foo = "mädchen wörter mutter".split()
像这样:

>>> for x in foo:
...     print x
... 
mädchen
wörter
mutter
除了我需要用功能性的方式。但如果我不使用
print
,尝试以下操作,则显示的是内部表示:

>>> [x for x in foo]
['m\xc3\xa4dchen', 'w\xc3\xb6rter', 'mutter']
我试着像这样使用
print
,但显然也不起作用,因为这样会打印整个列表,而不是每个单独的元素:

>>> print [x for x in foo]
['m\xc3\xa4dchen', 'w\xc3\xb6rter', 'mutter']
print
放在方括号内会返回语法错误:

>>> [print x for x in foo]
  File "<stdin>", line 1
    [print x for x in foo]
         ^
SyntaxError: invalid syntax
除了最后的
[None,None,None]
之外(这是从哪里来的?)


是否有一种功能性的方法可以输出如下内容:

>>> [*do_something* for x in foo]
mädchen
wörter
mutter
谢谢你的帮助

def show(x):
    print(x)

[show(x) for x in foo]
mädchen
wörter
mutter
[None, None, None]
如果你用脚本写的话,它实际上会起作用。在解释器中写入时,每次调用函数时,都会打印值,最后也会打印列表。如果在.py文件中写入相同的代码,则不会打印列表


如果你用脚本写的话,它实际上会起作用。在解释器中写入时,每次调用函数时,都会打印值,最后也会打印列表。如果在.py文件中写入相同的代码,则不会打印列表。

使用
string.join(..)
如何


另外,请注意,您使用的是:
列表理解
。通常,列表理解是在
map
的意义上使用的,这没有副作用。在每个元素上调用
show(…)
,并丢弃列表理解的结果并不是应该如何使用它


这几乎是可行的,除了最后的[无,无,无](这是从哪里来的?)

它来自列表理解的返回值。它是应用于每个元素的
show(…)
,由于函数返回
None
您将看到3个
None
s



使用
string.join(..)
怎么样


另外,请注意,您使用的是:
列表理解
。通常,列表理解是在
map
的意义上使用的,这没有副作用。在每个元素上调用
show(…)
,并丢弃列表理解的结果并不是应该如何使用它


这几乎是可行的,除了最后的[无,无,无](这是从哪里来的?)

它来自列表理解的返回值。它是应用于每个元素的
show(…)
,由于函数返回
None
您将看到3个
None
s



“是否有一种功能性的方式可以输出如下内容:”-不,您正在创建一个列表,该列表将显示出来。我不熟悉“功能性样式”这个术语。“你这是什么意思?”罗伯说ᵩ 老实说,我也不是。也许我应该说“函数形式”。我被教导说,
[x代表x在foo中]
代表x在foo中的“功能”形式:x
谢谢。我以前从未听说过这两个术语。是否有一种功能性的方式可以输出这样的内容:“-不,您正在创建一个列表,该列表将显示出来。我不熟悉“功能性样式”这个术语。“你这是什么意思?”罗伯说ᵩ 老实说,我也不是。也许我应该说“函数形式”。我被教导说,
[x代表x在foo中]
代表x在foo中的“功能”形式:x
谢谢。我以前从未听说过这两个术语。非常感谢,这就成功了!我之前确实读过一篇关于列表理解的文章,其中的例子看起来有点像我的,但我没有意识到这就是我在这里所做的。谢谢你的解释。非常感谢,这就成功了!我之前确实读过一篇关于列表理解的文章,其中的例子看起来有点像我的,但我没有意识到这就是我在这里所做的。谢谢你的解释。我刚试过,效果不错,谢谢。在这种情况下,我需要使用解释器,但这将有助于了解。我刚刚尝试过,它的工作,谢谢。在这种情况下,我需要使用解释器,但这将有助于了解。
def show(x):
    print(x)

[show(x) for x in foo]
mädchen
wörter
mutter
[None, None, None]
print "\n".join(foo)