从列表中的字符串中删除\ xa0

时间:2016-08-08 13:19:36

标签: python string python-3.x

我有一个包含大量词语的列表:

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

有没有人知道如何解决这个问题?

3 个答案:

答案 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]