如何解决Itertools 排列组合与固定位置
我想置换一个 r=3 的数组。这三个位置都有一些固定的位置。位置规则:
(arr[:3],arr[:3],arr[:7])
另一个规则:一个元素只出现一次。 (1,2,2) 是不可接受的。生成的三个元素应该是唯一的。
当前的伪代码类似于:
result = []
for h1 in arr[:3]:
for h2 in arr[:3]:
if h1 == h2:
continue
for h3 in arr[:7]:
if h1 == h3 or h2 == h3:
continue
result.append([h1,h2,h3])
这意味着首先只能有索引范围从 0 到 2 的元素。第二个位置也有相同的,第三个位置将包含从 0 到 6 的元素。
我也想用相同的规则进行组合。
我编写了一个完美生成它的自定义函数。我只是想知道是否有任何方便的 itertools 函数可以完成这项工作。有吗?
解决方法
您可以使用itertools.product
import itertools
for ele in itertools.product(arr[:3],arr[:3],arr[:7]):
print(ele)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。