我有一个包含大量词语的列表:
lista = ['Jeux Olympiques De Rio\xa02016', 'Sahara Ray', 'Michael Phelps', 'Amber Alert']
我尝试替换'\xa0'
:
for element in listor:
element = element.replace('\xa0',' ')
但它没有用。此外,当我print
元素时,它会打印:
print(lista[0])
Jeux Olympiques De Rio 2016
有没有人知道如何解决这个问题?
答案 0 :(得分:2)
for index, element in enumerate(listor):
listor[index] = element.replace('\xa0',' ')
现在您要替换列表中的字符串,而不是尝试更改字符串本身。以前,您正在为同一个变量名分配一个新字符串,该字符串不会更改前一个字符串,只会更改“element”变量指向的字符串。有了这个,你实际上将用一个新的字符串覆盖list元素。
答案 1 :(得分:2)
如果字符串包含'\xa0'
:
res = [elem if '\xa0' not in elem else elem.replace('\xa0', '') for elem in lista]
您当前的方法只是反复重新分配名称(element
)而不实际修改列表lista
。列表推导将使用原始列表中的元素创建一个新列表,即:
for elem in lista
并替换包含\xa0
的所有字符串,即:
elem if '\xa0' not in elem else elem.replace('\xa0', '')
答案 2 :(得分:2)
最简单的方法:
lista = [el.replace('\xa0',' ') for el in lista]