gpt4 book ai didi

python - 在字符串列表中查找子字符串,返回索引

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:42 26 4
gpt4 key购买 nike

我有一个由 readlines() 转储的字符串列表,我想找到包含子字符串的第一行或最后一行的索引。

这行得通,但看起来很笨重:

fooIndex=listOfStrings.index((next((x for x in listOfStrings if "foo" in x),listOfStrings[-1])))

肯定有比搜索两次更好的方法,但我找不到。

最佳答案

我认为对此没有好的(即可读的)单行解决方案。除了@eugene 的循环,您还可以使用try/except

def get_index(list_of_strings, substring):
try:
return next(i for i, e in enumerate(list_of_strings) if substring in e)
except StopIteration:
return len(list_of_strings) - 1

代码有点长,但恕我直言,意图很明确:尝试获取包含子字符串的下一个索引,或者列表的长度减一。


更新:事实上,一个很好的(好吧,有点好吧)单行代码,你几乎拥有它,使用 default 参数 next,但不是使用最后一个元素本身作为默认值,然后调用 index,只需放置索引本身并与 enumerate 结合:

next((i for i, e in enumerate(list_of_strings) if substring in e), 
len(list_of_strings) - 1)

关于python - 在字符串列表中查找子字符串,返回索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com