【发布时间】:2015-12-22 07:15:17
【问题描述】:
我有一个这样的字符串列表,
['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 循环查找关键字的索引,然后通过下划线重新组合字符串。有没有更快的方法来做到这一点?
【问题讨论】:
-
这实际上可能相当快。您的应用程序是否太慢了?
-
不是真的,我只是对 Python 有点陌生,不知道是否有更好、更简洁的方法。
-
我通常建议在优化之前测量。 :) 无论如何,基本的字符串操作通常比更复杂的方法更快。
-
在python中过早优化可能是万恶之源......如果你这样做的方式“足够快”并且对你来说足够清晰......你应该坚持下去:P
-
感谢所有帮助,我想出了一种正则表达式方式,但我对正则表达式还不够熟悉,无法正确实现它,我会阅读正则表达式代码以更好地帮助我的理解!