我有一个类似的python列表:
list = [u'a', u'b', u'c']
现在我想用UTF-8编码。因此,我应该使用:
list = list[0].encode("utf-8")
但是打印列表仅提供
a
表示列表的第一个元素。甚至不再是列表了。我做错了什么?
答案 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']