Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中以最短时间查找列表的所有子列表_Python_List_Loops_Time_Sublist - Fatal编程技术网

在python中以最短时间查找列表的所有子列表

在python中以最短时间查找列表的所有子列表,python,list,loops,time,sublist,Python,List,Loops,Time,Sublist,我必须在最短的时间内找到列表的所有子列表 我试过了,但花了很多时间 X=[] for i in range(len(N)+1): for j in range(len(N)+1): c=N[i:j] X.append(c) X2 = [x for x in X if x != []] 使用itertools可能比使用嵌套for循环更快 代码 输出 编辑1 希望这有帮助 from itertools import combinations def sub

我必须在最短的时间内找到列表的所有子列表 我试过了,但花了很多时间

X=[]
for i in range(len(N)+1):
    for j in range(len(N)+1):
        c=N[i:j]
        X.append(c)
X2 = [x for x in X if x != []]

使用
itertools
可能比使用嵌套for循环更快

代码 输出 编辑1 希望这有帮助

from itertools import combinations

def sublist(ls):
    res = [ls[x:y] for x, y in combinations( range(len(ls) + 1), r = 2)]
    print(res)

ls=['1','2','3','4']

print(sublist(ls))
输出
使用
itertools
可能比使用嵌套for循环更快

代码 输出 编辑1 希望这有帮助

from itertools import combinations

def sublist(ls):
    res = [ls[x:y] for x, y in combinations( range(len(ls) + 1), r = 2)]
    print(res)

ls=['1','2','3','4']

print(sublist(ls))
输出
您不应该在第一时间创建所有这些空列表。“在最短时间内”并不意味着什么,但是…找到一个列表的所有子列表你是指幂集?意思是如果输入是[1,2,3,4],那么输出应该是[1],[1,2],[1,2,3,4],[1,2,3,4],[2,3],[2,3,4],[3,4]。你不应该在第一次创建所有这些空列表。“在最短时间内”并不意味着什么,但是…找到一个列表的所有子列表你指的是幂集?意思是如果输入是[1,2,3,4],那么输出应该是[1],[1,2],[1,2,3,4],[1,2,3,4],[2,3],[2,3,4],[3,4],[1,3],因为它不是iti的子列表,如果没有itif输入,它就不需要输出[1,2,3,4]otput应该是[[1]、[1,2]、[1,2,3]、[1,2,3,4]、[2,3]、[2,3,4]、[3]、[3]、[3]、[4]]在输出中也有(1,3)不应该存在,因为它不是iti的子列表。如果输入是[1,2,3,4],otput应该是[[1]、[1,2]、[1,2,3,4]、[2,3]、[2,3]、[4]。]
from itertools import combinations

def sublist(ls):
    res = [ls[x:y] for x, y in combinations( range(len(ls) + 1), r = 2)]
    print(res)

ls=['1','2','3','4']

print(sublist(ls))
[['1'], ['1', '2'], ['1', '2', '3'], ['1', '2', '3', '4'], ['2'], ['2', '3'], ['2', '3', '4'], ['3'], ['3', '4'], ['4']]