列表理解对encode函数不起作用

2024-09-30 10:35:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要遍历所有元素来完成Python列表中的字符串编码转换。试着使用列表理解,但它不起作用。在

这是我的代码:

contain_list = [[u'\u6e2c\u8a66', 'b', 'c'], [u'\u5de5\u4f5c', 'b1', 'c1']]

[[x.encode('utf-8') for x in row] for row in contain_list]

但如果我尝试:

^{pr2}$

我可以把字符串转换成utf-8。我如何使用列表理解来完成这项工作?在


Tags: 字符串代码in元素编码列表forlist
2条回答

实际上你得到了你想要的:

>>> contain_list = [[u'\u6e2c\u8a66', 'b', 'c'], [u'\u5de5\u4f5c', 'b1', 'c1']]
>>> r = [[x.encode('utf-8') for x in row] for row in contain_list]
>>> r[0][0]
'\xe6\xb8\xac\xe8\xa9\xa6'

我猜这是一些中国人的UTF-8代表。在

如果打印contain_list的每个元素,可以看到它们编码正确。 如果您看到内容列表,您将只看到utf-8表示。在

contain_list = [[u'\u6e2c\u8a66', 'b', 'c'], [u'\u5de5\u4f5c', 'b1', 'c1']]
contain_list = [[x.encode('utf-8') for x in row] for row in contain_list]

print contain_list

for each in contain_list:
    for e in each:
        print e

[['\xe6\xb8\xac\xe8\xa9\xa6', 'b', 'c'], ['\xe5\xb7\xa5\xe4\xbd\x9c', 'b1', 'c1']]

測試
b
c
工作
b1
c1

相关问题 更多 >

    热门问题