python - 打印没有转义字符的 unicode 字符列表

标签 python list encoding python-2.7

如果你有如下字符串,带有 unicode 字符,你可以打印它,并得到未转义的版本:

>>> s = "äåö"
>>> s
'\xc3\xa4\xc3\xa5\xc3\xb6'
>>> print s
äåö

但是如果我们有一个包含上面字符串的列表并打印它:

>>> s = ['äåö']
>>> s
['\xc3\xa4\xc3\xa5\xc3\xb6']
>>> print s
['\xc3\xa4\xc3\xa5\xc3\xb6']

您仍然会得到转义字符序列。你如何去获得未转义的列表的内容,这可能吗?像这样:

>>> print s
['äåö']

此外,如果字符串是 unicode 类型,您如何执行与上述相同的操作?

>>> s = u'åäö'
>>> s
u'\xe5\xe4\xf6'
>>> print s
åäö
>>> s = [u'åäö']
>>> s
[u'\xe5\xe4\xf6']
>>> print s
[u'\xe5\xe4\xf6']

最佳答案

当你打印一个字符串时,你会得到对象的 __str__ 方法的输出——在本例中是不带引号的字符串。列表的__str__方法不同,它创建一个包含开始和结束的字符串[]__repr__方法产生的字符串包含在其中的每个对象。您看到的是 __str____repr__ 之间的区别。

您可以构建自己的字符串:

print '[' + ','.join("'" + str(x) + "'" for x in s) + ']'

此版本应该适用于 Python 2 中的 Unicode 和字节字符串:

print u'[' + u','.join(u"'" + unicode(x) + u"'" for x in s) + u']'

关于python - 打印没有转义字符的 unicode 字符列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798811/

相关文章:

python - 如何使用 pandas 从 .xls 文件中读取合并的单元格

python - python中一个输入的两个值?

python - 根据元组的第一个条目从列表中删除重复的元组

javascript - 在Js中cookie html标签消失了

php - php有没有独特的编解码函数?

python - 如何在 C 中将字符串编码更改为 utf 8

python - pandas,给定值列表,查找在列中具有该值的行

python - 成员变量的注解在哪里

c# - DataColumn 插入列表(相同数据类型)

windows - 如何在 CMake 中使用分号值创建一个列表?