我有一个这样的列表:
lst = ['something', 'foo1', 'bar1', 'blabla', 'foo2']
是否可以使用正则表达式和lst.index()获取以“foo”(foo1)开头的第一个项目的索引,如:
ind = lst.index("some_regex_for_the_item_starting_with_foo") ?
我知道我可以创建一个计数器和一个for循环并使用方法startswith().
如果我错过了一些更短更优雅的方式,我很好奇.
解决方法:
我认为没关系,你可以使用startswith方法,如果你做你真正想要的(我不确定你真的需要regEx在这里 – 但是下面的代码可以很容易地修改为使用regEx):
data = ['text', 'foo2', 'foo1', 'sample']
indeces = (i for i,val in enumerate(data) if val.startswith('foo'))
或者使用正则表达式:
from re import match
data = ['text', 'foo2', 'foo1', 'sample']
indeces = (i for i,val in enumerate(data) if match('foo', val))