如何在字串串列中找到子字串的所有實體并回傳在 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].
uj5u.com熱心網友回復:
使用串列理解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]
uj5u.com熱心網友回復:
這就是你要找的:
print([my_list.index(item) for item in my_list if sub_string in item])
希望這有幫助:) 干杯!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/348930.html
上一篇:為什么在這里使用串列理解這么慢?
下一篇:轉置二維串列并將其轉換為一維串列
