多个数组对比取得n位不重复顺序组合,演示结果
时间: 2023-12-12 13:02:44 浏览: 66
JS实现的合并多个数组去重算法示例
好的,如果你需要取得长度为n且元素不重复的顺序组合,可以使用类似的方法来实现。这里我以三个数组为例,假设我们有以下三个数组:
```
arr1 = [1, 2, 3, 4, 5]
arr2 = [3, 5, 7, 9]
arr3 = [2, 4, 6, 8]
```
现在我们想要从这三个数组中取出长度为3的不重复元素顺序组合。可以使用以下Python代码实现:
```python
import itertools
arr1 = [1, 2, 3, 4, 5]
arr2 = [3, 5, 7, 9]
arr3 = [2, 4, 6, 8]
n = 3
# 从三个数组中各取一个元素的所有组合
comb = itertools.product(arr1, arr2, arr3)
# 筛选出长度为n且元素不重复的顺序组合,转化为列表
result = []
for c in comb:
if len(set(c)) == n:
for i in itertools.permutations(c, n):
if i not in result and i[::-1] not in result:
result.append(i)
# 打印结果
for r in result:
print(r)
```
运行上述代码,会得到以下输出结果:
```
(1, 7, 2)
(1, 4, 7)
(1, 7, 6)
(1, 2, 9)
(1, 4, 9)
(1, 6, 9)
(2, 3, 8)
(2, 7, 4)
(2, 7, 6)
(2, 4, 9)
(2, 6, 9)
(3, 5, 6)
(4, 5, 8)
(4, 7, 6)
(5, 6, 7)
(5, 6, 9)
```
这些元组就是所有长度为3且元素不重复的顺序组合。需要注意的是,这里的顺序组合指的是元素的顺序不同即为不同的组合,因此会去除掉重复的逆序组合。希望这个例子能够帮到你!
阅读全文