首页 > 解决方案 > Python 查找给定数组的所有子数组。(我犯了什么错误)

问题描述

def findSubarray(self, arrayList):
    newArray = []
    for i in range(len(arrayList)):
        for n in range(i, len(arrayList)):
            newArray.append(arrayList[i:n])
    print(newArray)

我尝试的输入是 [1,-1,3,5,7]。但是输出太错误了,所有的子数组都没有最后一个元素7,不知道我做错了什么?

标签: pythonloopsrange

解决方案


请注意arrayList1[i:n]不包括n索引。例如: arrayList1:3]将只考虑12索引和输出[-1, 3]

尝试:添加n+1

def findSubarray( arrayList):
newArray = []
for i in range(len(arrayList)):
    for n in range(i, len(arrayList)):
        newArray.append(arrayList[i:n+1])
print(newArray)

findSubarray( arrayList=[1,-1,3,5,7])

推荐阅读