获取包含子字符串的第一个列表索引?

2024-06-17 12:04:15 发布

您现在位置:Python中文网/ 问答频道 /正文

对于列表,方法list.index(x)返回值为x的第一个项列表中的索引。但是,如果我想查看列表项,而不仅仅是整个项,那么如何使用最具Pythoninc特性的方法来实现这一点呢?

例如,使用

l = ['the cat ate the mouse',
     'the tiger ate the chicken',
     'the horse ate the straw']

此函数将返回参数tiger提供的1


Tags: the方法列表index特性listcattiger
3条回答

abyx溶液的变化(优化为找到匹配时停止)

def first_substring(strings, substring):
    return next(i for i, string in enumerate(strings) if substring in string)

如果您是2.6版之前的版本,则需要将next()放在末尾

def first_substring(strings, substring):
    return (i for i, string in enumerate(strings) if substring in string).next()

只有一行:

index = [idx for idx, s in enumerate(l) if 'tiger' in s][0]

不光滑的方法:

def index_containing_substring(the_list, substring):
    for i, s in enumerate(the_list):
        if substring in s:
              return i
    return -1

相关问题 更多 >