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 に答える