python - 使用 IF 条件从多个容器中选择单个项目时返回所有可能的组合

标签 python algorithm

如果我在从 N 个不同的容器中选择一个元素时需要所有可能的组合,我可以这样做:

all_possible_cominations = [selection for selection in itertools.product(bin1,bin2,bin3...)]

但在这种情况下,我遇到了一个问题,即 bin1 中选择的元素会更改哪些 bin 与其余选择相关。

例如:

bin1 = [1,2], bin2 = [3,4], bin3 = [5,6]

如果我们从 bin1 中选择 1,那么我们从 bin2 中选择 0 项,从 bin3 中选择 1 项,如果我们从 bin1 中选择 2,那么我们从 bin2 中选择 1 项,从 bin3 中选择 0 项。

所以详尽的组合列表将是 [1,,5],[1,,6],[2,3,],[2,4,]

有什么帮助吗?

最佳答案

我不确定我是否答对了你的问题。这对您有帮助吗?

import itertools

bin1 = [1,2]
bin2 = [3,4]
bin3 = [5,6]

print [[bin1[0],y] for y in bin3] + [[bin1[1],y] for y in bin2]

关于python - 使用 IF 条件从多个容器中选择单个项目时返回所有可能的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25045993/

相关文章:

python - 在不删除定界符的情况下拆分正则表达式

arrays - 查找元素数量差异最大的子数组

Python 2.7 - 为大文件下载输出命令行百分比条时遇到问题(我想要像 : 0%. ..25%...50%...75%...100% 这样的输出)?

javascript - javascript中的最佳算法分组数据

algorithm - 这种类型的软件可以吗

python - 构建查询优化

python - 为什么这段代码只是删除文件的全部内容?

python - 如何从一维插值中获得导数

python - 使用解析/切片子字符串的内容实例化对象属性?

arrays - 在枚举数组时动态删除数组中的元素