简而言之,如果您想保持这种格式的输出,您必须自己实现:#!/usr/bin/env python
# -*- coding: utf-8 -*-
my_list = ['éléphant', 'Hello World']
def print_list (l):
print ("[" + ", ".join(["'%s'" % str(x) for x in l]) + "]")
print_list (my_list)
从而产生预期的
^{pr2}$
但是,请注意,它会将所有元素放在引号内(例如偶数),因此,如果您希望列表中除了字符串之外还有其他内容,则可能需要更复杂的实现。在
更长的答案
问题是Python在打印之前,会在引擎盖下运行str(my_list)。然后,依次对列表的每个元素运行repr()。在
现在,字符串上的repr()返回字符串的ASCII表示形式。也就是说,你看到的那些'\xc3'是一个实际的反斜杠,一个实际的'c'和一个真正的'3'字符。在
您无法解决这个问题,因为问题在于list.__str__ ()的实现。在
下面是一个示例程序来演示这一点。在#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vi: ai sts=4 sw=4 et
import pprint
my_list = ['éléphant', '