将Python列表编码为UTF-8

时间:2013-06-06 08:29:30

标签: python list encode

我有一个类似的python列表:

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

现在我想用UTF-8编码。因此,我应该使用:

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

但是打印列表仅提供

a

表示列表的第一个元素。甚至不再是列表了。我做错了什么?

4 个答案:

答案 0 :(得分:40)

>>> items =  [u'a', u'b', u'c']
>>> [x.encode('utf-8') for x in items]
['a', 'b', 'c']

答案 1 :(得分:6)

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

此外,请不要将变量命名为list,因为它会掩盖list()函数。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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']