gpt4 book ai didi

python - 在 Python 中优化 itertools 排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:42:11 26 4
gpt4 key购买 nike

在内存管理方面,我在使用 itertools permutations 时遇到很多问题,特别是当列表的长度超过 10 时。

有没有更好的方法来为任何列表生成排列,从而使内存利用率不高?

下面是我如何使用它的方式。

     num_list = [i for i in range(0,18)]
permutation_list = list(permutations(num_list,len(num_list)))

for p_tuples in permutation_list:
print(p_tuples)

最佳答案

如果您需要做的只是遍历排列,请不要存储它们。直接遍历 itertools.permutations 返回的对象。换句话说,这样做:

permutations = permutations(num_list,len(num_list))
for perm in permutations:
doSomethingWith(perm)

在迭代器上调用 list 就是说“同时给我内存中的所有元素”的方式。如果您不想或不需要一次将它们全部存储在内存中,请不要使用 list。如果您只想一次使用一个元素,只需迭代您想要迭代的内容即可。

请注意,如果您真的尝试遍历所有排列,您的代码仍将需要很长时间才能运行,因为 18!是一个很大的数字。

关于python - 在 Python 中优化 itertools 排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32805311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com