我有一个使用BeautifulSoup创建的列表。我试图将列表项从NavigableString更改为Unicode,但是当我尝试遍历列表时它没有任何影响,但是如果我在列表上调用unicode它就会变成unicode。
如果我这样做,它不会将项目更改为unicode:
for i in D:
unicode(i)
如果我这样做,它似乎将整个列表变成unicode,我不能再遍历项目:
D = unicode(D)
有没有办法可以将列表项转换为unicode,这样我就可以做其他事情,比如将它们转换为字符串,运行.replace()等。
答案 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,这是您似乎正在使用的。