如何在不丢失列表结构的情况下将列表项转换为unicode

时间:2017-08-08 02:03:53

标签: python list

我有一个使用BeautifulSoup创建的列表。我试图将列表项从NavigableString更改为Unicode,但是当我尝试遍历列表时它没有任何影响,但是如果我在列表上调用unicode它就会变成unicode。

如果我这样做,它不会将项目更改为unicode:

for i in D:
    unicode(i)

如果我这样做,它似乎将整个列表变成unicode,我不能再遍历项目:

D = unicode(D)

有没有办法可以将列表项转换为unicode,这样我就可以做其他事情,比如将它们转换为字符串,运行.replace()等。

2 个答案:

答案 0 :(得分:0)

for count,i in enumerate(D):
    D[count]=unicode(i)

您需要将其分配给索引。

答案 1 :(得分:0)

在第一个示例中,您没有将unicode强制转换分配给任何变量。这就是原始清单保持不变的原因。

您的第二个示例不起作用,因为您必须将unicode应用于每个列表项,而不是列表本身。

使用列表推导从旧列表创建新列表,使用unicode处理每个项目:

D = [unicode(item) for item in D]

或者,您可以使用D = map(unicode, D)。请注意,此语法仅适用于python 2.x,这是您似乎正在使用的。