我的问题要求我遍历10个很大的排列!(或更大)排列:a = itertools.permutation(range(10))
我的输入范围将始终是range(x)的形式,虽然我几乎在所有情况下都看到a按字典顺序对排列进行迭代的情况,即
a[0] = (0,1,2,3,4,5,6,7,8,9)
a[1] = (0,1,2,3,4,5,6,7,9,8)
等等。这总是保证吗?我不想明确地对其进行排序 a = sorted(itertools.permutation(range(10)))
因为它将转换为<class 'itertools.permutations'>,<class 'list'>这意味着python将尝试分配大量的内存,我想避免这种情况。例如
a = itertools.permutations([1,2,3,4,5,6,7,8,9])
sys.getsizeof(a)
输出 232
b = sorted(a)
sys.getsizeof(b)
输出
3215232
如果这不能保证,那有什么选择呢?
相关分类