找到长度为p python的列表的n个排列

问题描述 投票:0回答:1

所以我有一个大约40项的数组,需要找到列表的n个排列。我知道我可以使用itertools.permutations,但那会给我40个!不同的订单需要更长的时间。

有没有办法可以准确地创建列表的n个排列?

python permutation itertools
1个回答
0
投票

itertools.permutations为您提供了一个关于列表排列的迭代器。您可以逐个提取值,该功能不会预先计算任何内容。

如果你只想要在没有任何进一步约束的情况下产生的第一个n排列,islicepermutations的结果。

>>> from itertools import permutations, islice
>>> perms = islice(permutations(yourlist), n)

只有在你使用perms循环或者通过制造一个容器(forlisttuple,......)来迭代set时才会开始计算排列。

© www.soinside.com 2019 - 2024. All rights reserved.