我有一个python元素列表。在最后的代码中,列表的长度是可变的,我的列表中的元素要长得多,但我可以用三个虚拟元素来演示我的问题。
基本上,对于任何长度为n的列表,将有n-1个相同的元素和1个唯一的元素。
所以,在三个元素的例子中,我有:
test = ['b', 'a', 'a']
对于像3这样的小情况,我可以用眼睛来验证元素的顺序,我一直在使用Sympy模块中的一个函数,如下所示:
permutations = list(multiset_permutations(test))
然而,一旦案例变得太大,我不确定顺序是否可预测。而且,检查official documentations对我来说并不能很好地阐明问题。
有没有办法以可预测的顺序生成这些排列,这样我就可以知道,例如:
permutations[0] = ['b', 'a', 'a']
permutations[1] = ['a', 'b', 'a']
permutations[2] = ['a', 'a', 'b']
感谢您能给予的任何帮助。
发布于 2019-06-05 05:26:23
在multiset_permutations
生成排列之前,对元素进行排序。您的结果将不依赖于输入项的顺序。
https://stackoverflow.com/questions/56446909
复制相似问题