我可以将列表更改为字符串,修改它,然后再将其更改为列表吗?

时间:2012-07-14 10:41:42

标签: python regex string list

例如,我有一个这样的列表:

lista = ['abc', 'alpha', 'bravo', 'charlie']

然后我将其更改为字符串并修改它:

lista = str(lista)
re.sub('a','b', lista)

然后我会得到一个'字符串',如:

lista = ['bbc','blphb','brbvo','chbrlie']

我希望它再次成为一个列表。

有什么建议吗?或者我可以修改列表中的内容吗?简单的方法将是最好的。

编辑: 我正在使用beutifulsoup的findall来制作清单。代码就像:

desclist = soup.findAll('description')
desclist[:] = (x.replace(r'.+', ' ') for x in desclist)
print desclist
我试图改变'。'或'。'到''' 但它说nonetype对象不可调用..

2 个答案:

答案 0 :(得分:6)

无需将列表转换为字符串。也没有必要使用正则表达式进行简单的字符串替换。只需对列表中的每个项目执行替换并将其存储在新列表中:

lista = [x.replace('a', 'b') for x in lista]

您也可以就地修改列表:

lista[:] = (x.replace('a', 'b') for x in lista)

答案 1 :(得分:0)

使用list comprehension对您列表中的每个成员采取行动:

In [1]: import re

In [2]: lista = ['abc', 'alpha', 'bravo', 'charlie']

In [3]: lista = [re.sub('a','b',x) for x in lista]

In [4]: lista
Out[4]: ['bbc', 'blphb', 'brbvo', 'chbrlie']