Python 我可以将列表更改为字符串、修改它并再次将其更改为列表吗?

Python 我可以将列表更改为字符串、修改它并再次将其更改为列表吗?,python,regex,string,list,Python,Regex,String,List,例如,我有这样一个列表: lista = ['abc', 'alpha', 'bravo', 'charlie'] 然后我将其更改为字符串并对其进行修改: lista = str(lista) re.sub('a','b', lista) 然后我会得到一个“字符串”,比如: lista = ['bbc','blphb','brbvo','chbrlie'] 我希望这再次成为一个列表 有什么建议吗?或者我可以修改列表中的内容吗?简单的方法最好 编辑: 我在用beutifulsoup的find

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

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
我正试着把“.”或“.”改成“.”
但它表示非类型对象不可调用。

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

lista = [x.replace('a', 'b') for x in lista]
您还可以就地修改列表:

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

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

lista = [x.replace('a', 'b') for x in lista]
您还可以就地修改列表:

lista[:] = (x.replace('a', 'b') for x in lista)
使用a对列表中的每个成员进行操作:

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']
使用a对列表中的每个成员进行操作:

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']


建议:不要使用像替换列表的字符串字母表示法这样的黑客方法…建议:不要使用像替换列表的字符串字母表示法这样的黑客方法…我计时了,在切片分配上使用生成器比列表比较慢,你有没有更快的例子?哇,谢谢!我不知道会这么简单!你帮了我很多:)哦。。我有一个错误,说“非类型对象不可调用…”我应该怎么做:(等等,我将把它添加到一个可能不是常规python
list
的问题上。不要使用就地语法。我计时了,在切片分配上使用生成器比list comp慢,你有没有更快的例子?哇,谢谢!我不知道它会这么简单!你帮了我很多:)哦……我有一个错误,它说‘非类型对象不可调用……’我该怎么办:(等等,我将在问题上添加它,它可能不是一个常规的python
列表
。不要使用就地语法。你确定吗?我已更改答案以显示所有步骤。(我已经更改了字母ell,如果这是个问题,它可能会与数字1混淆。)它对您的示例有效,但对我的示例无效:(desclist=[re.sub('a','b',x)在desclist]文件中代表x)/usr/lib/python2.7/re.py”,第151行,在sub返回编译(模式,标志)。sub(repl,string,count)TypeError:预期为string或Buffer,但这是desclist字符串的元素吗?哦..它不是..:(我使用了beautifulsoup,所以它的类型不是string…我可以更改它吗?很抱歉打扰你…你确定吗?我更改了答案以显示所有步骤。(我更改了字母ell,如果出现问题,它可能会与数字1混淆。)它适用于您的示例,但不适用于我的..:(desclist=[re.sub('a','b',x)for x in desclist]File“/usr/lib/python2.7/re.py”,第151行,在sub return\u compile(pattern,flags)中.sub(repl,string,count)TypeError:expected string或buffer是desclist字符串的元素吗?噢(我使用了beautifulsoup,所以它的类型不是字符串…我可以更改它吗?很抱歉打扰您。。。