簡體   English   中英

在字符串列表中查找子字符串的所有實例並返回找到子字符串的字符串的索引

[英]Find all instances of a sub-string in a list of strings and return the index of the string where the sub-string is found

我如何在字符串列表中找到子字符串的所有實例並返回在 Python 中找到子字符串的字符串的索引?

例如:

sub_string = "tree"
my_list = ["banana", "tree", "trees", "street"]

所需的輸出是: [1,2,3]因為在索引為[1,2,3]的字符串中找到樹。

我有一個函數的形式,但它只返回子字符串索引的第一個實例,並且不能識別字符串中的子字符串(例如街道中的樹)。

def inside_search(a_list, search_term):
    if search_term in a_list:
        index = a_list.index(search_term, 0, -1)
        return [index]
    else:
        return []

cats_and_dogs_list = ["cat", "cats", "dog", "dogs", "catsup"]
print(inside_search(cats_and_dogs_list, "cat"))

我的函數返回[0]但我希望它返回[0,1,4]

我已經嘗試使用幾種方法解決了這個問題,但除了[0]之外我似乎什么也不能返回。

將列表理解與enumerate

>>> [i for i, w in enumerate(my_list) if sub_string in w]
[1, 2, 3]

如果你想使用一個函數:

def inside_search(a_list, search_term):
    result = list()
    for i, word in enumerate(a_list):
        if search_term in word:
            result.append(i)
    return result

>>> inside_search(cats_and_dogs_list, "cat")
[0, 1, 4]

這就是你要找的:

print([my_list.index(item) for item in my_list if sub_string in item])

希望這有幫助:) 干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM