我有一个这样的字符串列表,
['happy_feet', 'happy_hats_for_cats', 'sad_fox_or_mad_banana','sad_pandas_and_happy_cats_for_people']
给定一个关键字列表,如 ['for', 'or', 'and']
我希望能够将该列表解析为另一个列表,如果关键字列表出现在字符串中,将该字符串拆分为多个部分。
例如,上面的集合会被拆分成
['happy_feet', 'happy_hats', 'cats', 'sad_fox', 'mad_banana', 'sad_pandas', 'happy_cats', 'people']
目前我已经用下划线分割了每个内部字符串,并有一个 for 循环来寻找关键字的索引,然后用下划线重新组合字符串。有没有更快的方法来做到这一点?
最佳答案
>>> [re.split(r"_(?:f?or|and)_", s) for s in l]
[['happy_feet'],
['happy_hats', 'cats'],
['sad_fox', 'mad_banana'],
['sad_pandas', 'happy_cats', 'people']]
要将它们组合成一个列表,您可以使用
result = []
for s in l:
result.extend(re.split(r"_(?:f?or|and)_", s))
关于python - 根据一组特定的单词拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34410358/