Python 列表理解与';不能使用编码功能
我需要遍历所有元素才能在Python列表中进行字符串编码转换。尝试使用列表理解,但它不起作用 这是我的密码:Python 列表理解与';不能使用编码功能,python,list-comprehension,encode,Python,List Comprehension,Encode,我需要遍历所有元素才能在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] 但如果我尝试: for row in contain_list: for index in range(0,
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]
但如果我尝试:
for row in contain_list:
for index in range(0,3):
row[index] = row[index].encode('utf-8')
我可以用utf-8转换字符串。我如何使用列表理解来完成工作?事实上,你已经得到了你想要的:
>>> 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表示。如果您打印
包含列表的每个元素,您可以看到它们的编码是正确的。
如果您看到内容列表,您将只看到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