python 数组两两组合或者多个组合

import itertools

lis = [1,2,3,4,5]

print list(itertools.combinations(list(lis),2))

如果您需要对比多组数组并取得 n 个不重复的组合,可以使用类似于两个数组的方法,将每组数组两两配对,然后分别从每组数组中取出元素进行组合。具体步骤如下: 1. 将多组数组两两配对,得到所有可能的组合。 2. 对于每个组合,从每组数组中取出元素进行组合,得到所有可能的组合。 3. 从所有可能的组合中选择 n 个不重复的组合。 示例代码如下: ```python import itertools import random # 多组数组 arr1 = [1, 2, 3] arr2 = ['a', 'b', 'c'] arr3 = ['x', 'y', 'z'] # 所有可能的组合 combinations = list(itertools.combinations([arr1, arr2, arr3], 2)) # 所有可能的组合组合 all_combinations = [] for combination in combinations: arr1, arr2 = combination for i in range(len(arr1)): for j in range(len(arr2)): all_combinations.append((arr1[i], arr2[j])) # 选择 n 个不重复的组合 unique_combinations = set() while len(unique_combinations) < n: selected_combinations = random.sample(all_combinations, n - len(unique_combinations)) for combination in selected_combinations: unique_combinations.add(combination) print(unique_combinations) ``` 上述代码中,首先将多组数组两两配对,得到所有可能的组合。然后对于每个组合,从每组数组中取出元素进行组合,得到所有可能的组合。最后从所有可能的组合中选择 n 个不重复的组合,并保存在 `unique_combinations` 集合中。 需要注意的是,如果多组数组长度不同,则需要在计算组合数时将长度较短的数组排除在外,以免出现组合中缺少元素的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值