微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 itertools 在 python 中的组合没有给出正确的组合

如何解决使用 itertools 在 python 中的组合没有给出正确的组合

所以我想要组合从 1 到 5 的所有数字,长度为 2。 我正在使用下面的代码来完成它。

from itertools import combinations_with_replacement
 
# Get all combinations of [1,2,3] and length 2
comb = combinations_with_replacement([1,3,4],2)
 
# Print the obtained combinations
for i in list(comb):
    print (i)

我得到的结果是:

(1,1)
(1,2)
(1,3)
(1,4)
(2,2)
(2,3)
(2,4)
(3,3)
(3,4)
(4,4)

但它跳过了一些数字,如 (2,1)、(3,2)

谁能告诉我如何获得所有组合,包括 (1,2),(2,1) 通常代码会跳过。

谢谢


您有 8 个对象:A、B、C、D、E、F、G、H 他们所有的排列重复,样本大小为 2 个对象: AA AB BA AC CA AD DA AE EA AF FA AG GA AH HA BB BC CB BD DB BE EB BF FB BG GB BH HB CC CD DC CE EC CF FC CG GC CH HC DD DE ED DF FD DG GD DH HD EE EF FE EG GE EH HE FF FG GF FH HF GG GH HG HH

解决方法

你想要itertools.productcombinations 从不关心元素的顺序,_with_replacement 只允许重复:

from itertools import product
 
comb = product([1,2,3,4],repeat=2)
for i in comb:  # no list conversion needed
    print(i)

(1,1)
(1,2)
(1,3)
(1,4)
(2,1)
(2,2)
(2,3)
(2,4)
(3,1)
(3,2)
(3,3)
(3,4)
(4,1)
(4,2)
(4,3)
(4,4)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?