Python 如何以函数式打印带有非ASCII字符的列表元素?
我试图在Python2.7中处理包含非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]
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)