16

我有一个看起来像这样的python列表:

list = [u'a', u'b', u'c']

现在我想用 UTF-8 对其进行编码。因此,我虽然应该使用:

list = list[0].encode("utf-8")

但打印列表只给出

a

表示列表的第一个元素。连一个清单都没有了。我究竟做错了什么?

4

4 回答 4

50
>>> items =  [u'a', u'b', u'c']
>>> [x.encode('utf-8') for x in items]
['a', 'b', 'c']
于 2013-06-06T08:30:54.287 回答
10

list[0]是第一个元素,而不是列表。您正在将您的listvar 重新分配给一个新值,即第一个元素的 utf-8 编码。

另外,不要命名您的变量list,因为它会掩盖list()函数。

于 2013-06-06T08:32:51.167 回答
0

如果您正在寻找没有 unicode 的干净列表的输出:

import unicodedata

list1 = [u'a', u'b', u'c']
clean_list1 = [unicodedata.normalize("NFKD", x) for x in list1]
print(clean_list1)

输出:

['a', 'b', 'c']
于 2021-07-08T11:07:18.347 回答
0

您需要对字符串进行编码而不是解码。为您提供的列表包含一个 unicode 字符串。要将 unicode 字符串表示为字节字符串称为编码,请使用u'...'.encode. 然后通过使用string.split(),您可以将编码字符串分解成更小的块(字符串)

于 2021-06-24T12:00:02.500 回答