這個問題在這里已經有了答案: Python:回傳主串列中每次出現子串列的所有索引 [重復] (3 個回答) 52 分鐘前關閉。
社區正在審查是否在51 分鐘前重新打開此問題。
def listInList(list1, list2):
???
list1 = [0,0,0,0,1,0,1,0,0,0,1,0,1,0,0]
list2 = [1,0,1]
print(listInList(list1, list2))
我將如何讓上述代碼回傳 [4, 10]?
uj5u.com熱心網友回復:
借用這篇相關帖子(這不是重復的,因為那只是查看子串列是否包含在串列中,而不是出現次數或索引),我想出了一個解決方案。代碼:
list1 = [0,0,0,0,1,0,1,0,0,0,1,0,1,0,0]
list2 = [1,0,1]
def contains_sublist(lst, sublst):
n = len(sublst)
instances = []
for i in range(len(lst)-n 1):
if sublst == lst[i:i n]:
instances.append(i)
return instances
print(contains_sublist(list1, list2))
輸出:
[4, 10]
uj5u.com熱心網友回復:
您只需要遍歷子串列:
def listInList(list1, list2):
return [i for i in range(len(list1)-len(list2) 1)
if list1[i:i len(list2)]==list2]
list1 = [0,0,0,0,1,0,1,0,0,0,1,0,1,0,0]
list2 = [1,0,1]
print(listInList(list1, list2))
輸出; [4, 10]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365129.html
標籤:Python
下一篇:如何從字典創建不同的資料框
