什么是在python中列表中找到多个字符串外观的最佳方法?

Dor*_*onS 1 python

可以说我有以下列表:

[ 'AB = 2', 'BC = 5', 'AB = 1', 'CD = 6', 'AB = 7']

在这个列表中找到"ab"这个词的所有外观的最佳(有效)方法是什么?

fra*_*xel 6

>>> mylist = ['ab=2','bc=5','ab=1','cd=6','ab=7']
>>> [i for i in mylist if 'ab' in i]
['ab=2', 'ab=1', 'ab=7']
Run Code Online (Sandbox Code Playgroud)

对所有提出的解决方案进行计时timeit,可以发现这是最快的解决方案,大约为2倍,超过了最佳解决方案.


jam*_*lak 5

好吧,如果'ab'总是在前面,这将是最有效的,除非数据总是这样简单,在这种情况下@fraxel的解决方案将是最快的.

>>> data = ['ab=2','bc=5','ab=1','cd=6','ab=7']
>>> [x for x in data if x.startswith("ab")]
['ab=2', 'ab=1', 'ab=7']
Run Code Online (Sandbox Code Playgroud)