[英]How to find the index of an item in a list, but not an exact match
我有一个类似这样的清单:
ls = ['item1', 'this is item2', 'item3']
我希望能够通过搜索'item2'
找到项目'this is item2'
'item2'
。 index 函数正在寻找精确匹配,所以它在这里无济于事:
index = ls.index('item2')
我怎样才能达到这个要求?
这是使用next
和生成器的解决方案,并enumerate
以获取索引:
>>> ls = ['item1', 'this is item2', 'item3']
>>> next(i for i, v in enumerate(ls) if 'item2' in v)
1
如果未找到该项目,它将引发StopIteration
。 如果你想要None
或-1
,你可以把它作为next
的第二个参数:
>>> next((i for i, v in enumerate(ls) if 'item5' in v), -1)
-1
您可以简单地传递一个临时列表并对其应用索引方法:
ls = ['item1', 'this is item2', 'item3']
index = ['item2' in item for item in ls].index(True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.