1

私はPythonが初めてで、re.subまたは他のアプローチを使用してリスト内の個々のアイテムを見つけ、複数のアイテムに置き換えようとしています。例えば:

import re
list = ['abc', 'def']
tolist = []
for item in list:
    a = re.sub(r'^(.)(.)(.)$', '\\1\\2', '\\2\\3', item)
    tolist.append(a)
print tolist  # want: ['ab', 'bc', 'de', 'ef']

'\1\2', '\2\3' の部分は明らかに機能しません。

4

3 に答える 3

0

これは、各アイテムで実行したいすべての置換のタプルのリストがある、かなり一般的なアプローチです。

In [1]: import re

In [2]: subs = [(r'^(.)(.)(.)$', r'\1\2'), (r'^(.)(.)(.)$', r'\2\3')]

In [3]: inlist = ['abc', 'def']

In [4]: [re.sub(*sub, string=s) for s in inlist for sub in subs]
Out[4]: ['ab', 'bc', 'de', 'ef']

各タプルの 2 番目の要素は関数にすることもre.subできます。listは組み込みの型名であり、変数には使用しないため、最初のリストの名前を変更しました。

于 2013-03-13T09:12:40.033 に答える