0

我需要加入这样的事情:

["Círculo", 23]
["Triángulo, 25, 19, "dos"]

我看过这篇文章->使用 Python 加入具有整数值的列表

但解决方案如:

', '.join(map(str, myList)) or ', '.join(str(x) for x in list_of_ints)

对我不起作用,因为特殊字符 'í' 使它失败:

UnicodeEncodeError:'ascii' 编解码器无法在位置编码字符 ...:序数不在范围内(128)

那么解决它的pythonic方法是什么?我不想检查类型...谢谢!

4

3 回答 3

2

检查编码我找到了一个适合我的解决方案:

 u', '.join([unicode(x.decode('utf-8')) if type(x) == type(str()) else unicode(x) for x in a])

诀窍是decode('utf-8')用于获取字符的有效 8 位表示。

希望这会有所帮助。

于 2013-06-11T11:48:15.187 回答
0

如果您可以将列表中的字符串指定为 unicode,例如:

[u"Círculo", 23]
[u"Triángulo", 25, 19, u"dos"]

那么这应该工作:

u', '.join(unicode(x) for x in list_of_ints)

假设您正在运行 Python 2。

于 2013-06-11T09:08:49.717 回答
0
import encodings

a=encodings.utf_16.decode(a[0])
encodings.utf_16.encode(a[0])

您是否尝试过使用 encodings 模块来做到这一点?也许你会得到它来处理这个。但似乎不适用于 utf_16 编码...

于 2013-06-11T09:37:35.043 回答