我有一个看起来像这样的python列表:
list = [u'a', u'b', u'c']
现在我想用 UTF-8 对其进行编码。因此,我虽然应该使用:
list = list[0].encode("utf-8")
但打印列表只给出
a
表示列表的第一个元素。连一个清单都没有了。我究竟做错了什么?
>>> items = [u'a', u'b', u'c']
>>> [x.encode('utf-8') for x in items]
['a', 'b', 'c']
list[0]
是第一个元素,而不是列表。您正在将您的list
var 重新分配给一个新值,即第一个元素的 utf-8 编码。
另外,不要命名您的变量list
,因为它会掩盖list()
函数。
如果您正在寻找没有 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']
您需要对字符串进行编码而不是解码。为您提供的列表包含一个 unicode 字符串。要将 unicode 字符串表示为字节字符串称为编码,请使用u'...'.encode
. 然后通过使用string.split()
,您可以将编码字符串分解成更小的块(字符串)