2024-10-02 20:40:11 发布
网友
我有50个文件在一个目录中,我想执行一个排列,得到所有可能的组合在一组25。如果你想看到一个小例子,使用组od 3,它应该是这样的:
file1 file2 file3 file1 file2 file4 file1 file2 file5 ... file50 file48 file49
为此,我使用R方法:
这种方法非常缓慢。你知道使用awk,bash,python,perl的更快的替代品吗?在
awk
bash
python
perl
从perl faq:
use Algorithm::Permute; my @array = 'a'..'d'; my $p_iterator = Algorithm::Permute->new ( \@array ); while (my @perm = $p_iterator->next) { print "next permutation: (@perm)\n"; }
这将生成一个列表的每一个排列,尽管有50个元素,但这将是相当多的。在
我不确定是否有一个方便的方法来选择和过滤子列表。我最初的想法是保留一份“看到”的名单。我将开始考虑在散列中维护一个“seen”列表,并跳过重复项,但是您必须生成完整的置换列表才能做到这一点。在
或者有combine
3路组合是:19000奇数。 4 is:230300 5是:
不知道25是什么-我没准备好运行它!在
但请注意,这是一个大手术,所以无论你做什么都需要一段时间。在
使用Python可以使用combinations函数,如下所示:
combinations
from itertools import combinations import os for combo in combinations(os.listdir('.'), 25): print combo
从perl faq:
这将生成一个列表的每一个排列,尽管有50个元素,但这将是相当多的。在
我不确定是否有一个方便的方法来选择和过滤子列表。我最初的想法是保留一份“看到”的名单。我将开始考虑在散列中维护一个“seen”列表,并跳过重复项,但是您必须生成完整的置换列表才能做到这一点。在
或者有combine
^{pr2}$3路组合是:19000奇数。 4 is:230300 5是:
不知道25是什么-我没准备好运行它!在
但请注意,这是一个大手术,所以无论你做什么都需要一段时间。在
使用Python可以使用
combinations
函数,如下所示:相关问题 更多 >
编程相关推荐