0

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

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 对象不可调用..

4

2 回答 2

6

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

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

您还可以就地修改列表:

lista[:] = (x.replace('a', 'b') for x in lista)
于 2012-07-14T10:42:55.183 回答
0

使用列表推导对列表中的每个成员进行操作:

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']
于 2012-07-14T10:43:54.527 回答