在Jupyter中获取MemoryError但在Spyder中工作

时间:2018-03-26 03:35:32

标签: python list

我有一个查找列表所有组合的函数:

def GetRulesCombinations(selected_list, start_index , end_index):
    AllCombinations=[]

    for i in range(start_index, end_index+1):
        AllCombinations.extend(itertools.combinations(selected_list, i))

    AllCombinations = [list(x) for x in AllCombinations]
    return AllCombinations

示例:

comb = GetRulesCombinations(range(5), 1,3)

comb = [[0],[1],...,[0, 1], [0, 2],...,[0, 1, 2], [0, 1, 3],...]

我得到了这个:

       807     for i in range(start_index, end_index+1):
   --> 808         AllCombinations.extend(itertools.combinations(selected_list, i))
       809 
       810     AllCombinations = [list(x) for x in AllCombinations]

   MemoryError:

有什么办法可以避免这种情况吗?感谢帮助。

顺便说一下,我正在做像

这样的事情
GetRulesCombinations(range(27), 16,27)
len(GetRulesCombinations(range(27),16,27))
29666704

0 个答案:

没有答案