是否itertools.permutations总是返回已排序的对象?

我的问题要求我遍历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


如果这不能保证,那有什么选择呢?


catspeake
浏览 161回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python