繁体   English   中英

如何在列表中查找项目的索引,但不是完全匹配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM