我是一个Python初学者.我想从一个列表中获取两个组合列表.

例如,我有一个列表:

c = [1, 2, 3, 4]

我想使用每四个项目来获得每个可能的组合来填充两个列表.将会有((2 ^ 4)/ 2)-1种可能性.

c1 = [1] c2 = [2, 3, 4]

c1 = [2] c2 = [1, 3, 4]

c1 = [3] c2 = [2, 3, 4]

c1 = [4] c2 = [1, 2, 3]

c1 = [1, 2] c2 = [3, 4]

c1 = [1, 3] c2 = [2, 4]

c1 = [1, 4] c2 = [2, 3]

这个函数通常适用于itertools,但我不能选择itertools.combination生成的列表数.

该功能只允许我选择每个列表应该有多少项.

例如,如果我尝试以下功能,

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

我只能这样得到一个结果.

[(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]

我很难找到这个,但我找不到任何东西.

更新

哦,我可怜的英语造成了这样的混乱!我完全改变了我的榜样.我想将4个项目分配到2个列表.对困惑感到抱歉!

解决方法:

我不确定你对10选择2的理解是什么.您从列表中收到的输出(itertools.combinations(c,2))是数学定义为10C2的输出.

编辑

从编辑到您的问题,您似乎想要一种完全不同的组合.结果的数量仍然不是45,而是:10C1 10C2 10C3 10C4 10C5.

我希望以下内容可以帮助您前进:

for i in range(1, 6):

for c1 in itertools.combinations(c, i):

c1 = set(c1)

c2 = set(c) - c1

print c1, c2

使用范围(1,3)时收到的输出:

[1] [2, 3, 4, 5, 6, 7, 8, 9, 10]

[2] [1, 3, 4, 5, 6, 7, 8, 9, 10]

[3] [1, 2, 4, 5, 6, 7, 8, 9, 10]

[4] [1, 2, 3, 5, 6, 7, 8, 9, 10]

[5] [1, 2, 3, 4, 6, 7, 8, 9, 10]

[6] [1, 2, 3, 4, 5, 7, 8, 9, 10]

[7] [1, 2, 3, 4, 5, 6, 8, 9, 10]

[8] [1, 2, 3, 4, 5, 6, 7, 9, 10]

[9] [1, 2, 3, 4, 5, 6, 7, 8, 10]

[10] [1, 2, 3, 4, 5, 6, 7, 8, 9]

[1, 2] [3, 4, 5, 6, 7, 8, 9, 10]

[1, 3] [2, 4, 5, 6, 7, 8, 9, 10]

[1, 4] [2, 3, 5, 6, 7, 8, 9, 10]

[1, 5] [2, 3, 4, 6, 7, 8, 9, 10]

[1, 6] [2, 3, 4, 5, 7, 8, 9, 10]

[1, 7] [2, 3, 4, 5, 6, 8, 9, 10]

[8, 1] [2, 3, 4, 5, 6, 7, 9, 10]

[1, 9] [2, 3, 4, 5, 6, 7, 8, 10]

[1, 10] [2, 3, 4, 5, 6, 7, 8, 9]

[2, 3] [1, 4, 5, 6, 7, 8, 9, 10]

[2, 4] [1, 3, 5, 6, 7, 8, 9, 10]

[2, 5] [1, 3, 4, 6, 7, 8, 9, 10]

[2, 6] [1, 3, 4, 5, 7, 8, 9, 10]

[2, 7] [1, 3, 4, 5, 6, 8, 9, 10]

[8, 2] [1, 3, 4, 5, 6, 7, 9, 10]

[9, 2] [1, 3, 4, 5, 6, 7, 8, 10]

[2, 10] [1, 3, 4, 5, 6, 7, 8, 9]

[3, 4] [1, 2, 5, 6, 7, 8, 9, 10]

[3, 5] [1, 2, 4, 6, 7, 8, 9, 10]

[3, 6] [1, 2, 4, 5, 7, 8, 9, 10]

[3, 7] [1, 2, 4, 5, 6, 8, 9, 10]

[8, 3] [1, 2, 4, 5, 6, 7, 9, 10]

[9, 3] [1, 2, 4, 5, 6, 7, 8, 10]

[10, 3] [1, 2, 4, 5, 6, 7, 8, 9]

[4, 5] [1, 2, 3, 6, 7, 8, 9, 10]

[4, 6] [1, 2, 3, 5, 7, 8, 9, 10]

[4, 7] [1, 2, 3, 5, 6, 8, 9, 10]

[8, 4] [1, 2, 3, 5, 6, 7, 9, 10]

[9, 4] [1, 2, 3, 5, 6, 7, 8, 10]

[10, 4] [1, 2, 3, 5, 6, 7, 8, 9]

[5, 6] [1, 2, 3, 4, 7, 8, 9, 10]

[5, 7] [1, 2, 3, 4, 6, 8, 9, 10]

[8, 5] [1, 2, 3, 4, 6, 7, 9, 10]

[9, 5] [1, 2, 3, 4, 6, 7, 8, 10]

[10, 5] [1, 2, 3, 4, 6, 7, 8, 9]

[6, 7] [1, 2, 3, 4, 5, 8, 9, 10]

[8, 6] [1, 2, 3, 4, 5, 7, 9, 10]

[9, 6] [1, 2, 3, 4, 5, 7, 8, 10]

[10, 6] [1, 2, 3, 4, 5, 7, 8, 9]

[8, 7] [1, 2, 3, 4, 5, 6, 9, 10]

[9, 7] [1, 2, 3, 4, 5, 6, 8, 10]

[10, 7] [1, 2, 3, 4, 5, 6, 8, 9]

[8, 9] [1, 2, 3, 4, 5, 6, 7, 10]

[8, 10] [1, 2, 3, 4, 5, 6, 7, 9]

[9, 10] [1, 2, 3, 4, 5, 6, 7, 8]

标签:python,iteration,combinations

来源: https://codeday.me/bug/20190609/1202705.html

python两两组合_python – 一个列表中的两个组合列表相关推荐

  1. python seaborn 热图_python – 在seaborn中结合两张热图

    在图中并排显示两个seaborn热图的一种可能方式是将它们绘制成单独的子图.可以将子图之间的空间设置为非常小(wspace = 0.01),并将相应的颜色条和标记标记定位在该间隙之外. import ...

  2. python画两条曲线_python – 在Matplotlib中绘制两个图之间的线

    在许多情况下,来自其他答案的解决方案是次优的(因为只有在计算点之后没有对图进行任何更改时它们才有效). 更好的解决方案是使用专门设计的ConnectionPatch: import matplotli ...

  3. 用户输入一个列表和两个整数作为下标,然后使用切片获取并输出列表中结余两个下标之间的元素组成的子列表。例如,用户输入 [1,2,3,4,5,6]和2,5,程序输出[3,4,5]。

    用户输入一个列表和两个整数作为下标,然后使用切片获取并输出列表中结余两个下标之间的元素组成的子列表.例如,用户输入 [1,2,3,4,5,6]和2,5,程序输出[3,4,5]. a = list(in ...

  4. C语言:一个数组中只有两个数字是出现一次

    1 //1.一个数组中只有两个数字是出现一次, 2 //其他所有数字都出现了两次. 3 //找出这两个数字,编程实现.a 4 5 //^=单独两个数的^结果 6 //单独出现的两个数不同位的标记 7 ...

  5. 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次,找出这两个数字

    题目:一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次. 找出这两个数字,编程实现. 参考代码: #include<stdio.h> #include <windows. ...

  6. 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值

    我觉得写得很清晰,希望没有侵犯作者的著作权,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一个数组中的两个数字,让这 ...

  7. 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 编写一个函数找出这两个只出现一次的数字。

    一个数组中只有两个数字是出现一次,其他所有数字都出现了两次.编写一个函数找出这两个只出现一次的数字. 1.代码编写 2.结果 1.代码编写 代码如下(示例): #define _CRT_SECURE_ ...

  8. 一个排列中任意两个元素对换,排列改变奇偶性。

    一个排列中任意两个元素对换,排列改变奇偶性. 非常简单的证明 过程: 一.相邻两元素对换 对于排列a1a2a3a4a5, 对换a3和a4, 形成排列a1a2a4a3a5, 其它元素与a3和a4的次序不 ...

  9. mysql 查询两个字段相同的数据_sql语句如何查询一个表中某两个字段的相同数据?...

    查询一个表中某两个字段的相同数据代码是:Select Name,ID From A group by Name,ID having count (*)>1. 结构化查询语言(Structured ...

最新文章

  1. 需要恢复中断状态的一个场景
  2. 数据库 ' 库名' 已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
  3. 帅呆了!微软即将发布 Visual Studio for Mac 预览版
  4. Leetcode之仅仅反转字母
  5. 王思聪旗下公司破产拍卖:13.8万成交、溢价超100倍
  6. CoffeeScript简介 一
  7. 【C#夯实】我与接口二三事:IEnumerable、IQueryable 与 LINQ
  8. JavaScript的事件绑定及深入
  9. oracle存储过程导出scv文件
  10. 小学计算机的一些课题,小学信息技术小课题研究.doc
  11. 如何理解Scala:迷之翻转喵 —— 协变逆变全解析
  12. 联发科mt6779(Helio P90),mt6775(Helio P70),MT6771(Helio P60),Helio P35,MT6762(Helio P22)处理器参数介绍
  13. 死理性派恋爱法:拒绝掉前面37%的人
  14. 在Excel中如何制作K线
  15. Photoshop - 高反差保留
  16. 整理总结:利用Python进行数据分析及思维导图
  17. camel发布多个服务
  18. window内置对象和js内置对象与方法
  19. 数据分析展示B站UP主假吃强(Cram阿强)的面目-视频与简介篇
  20. 【jvm内存占用过高分析】

热门文章

  1. 任务驱动在中职计算机课中的应用,论任务驱动教学法在中职计算机基础课上的应用...
  2. 有python画螺旋线
  3. MMO游戏服务器从零开发(架构篇)- 网络部分
  4. 电脑公司特别版5.0的驱动集成方法
  5. linux配置SSH
  6. kinect使用手册
  7. Landscape Photography: Winter 风景摄影:冬天 Lynda课程中文字幕
  8. 电商运营从哪些方面做数据分析?
  9. SSLOJ 1322.清兵线
  10. 企业精益生产之成本管理控制的四大要点