Python使用itertools模块实现排列组合功能示例


Posted in Python onJuly 02, 2018

本文实例讲述了Python使用itertools模块实现排列组合功能。分享给大家供大家参考,具体如下:

一、笛卡尔积:itertools.product(*iterables[, repeat])

直接对自身进行笛卡尔积:

import itertools
for i in itertools.product('ABCD', repeat = 2):
  print (''.join(i),end=' ')

输出结果:

AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD

print (''.join(i))这个语句可以让结果直接排列到一起

end=' '可以让默认的输出后换行变为一个空格

两个元组进行笛卡尔积:

import itertools
a = (1, 2, 3)
b = ('A', 'B', 'C')
c = itertools.product(a,b)
for i in c:
  print(i,end=' ')

输出结果:

(1, 'A') (1, 'B') (1, 'C') (2, 'A') (2, 'B') (2, 'C') (3, 'A') (3, 'B') (3, 'C')

二、排列:itertools.permutations(iterable[, r])

import itertools
for i in itertools.permutations('ABCD', 2):
  print (''.join(i),end=' ')

输出结果:

AB AC AD BA BC BD CA CB CD DA DB DC

三、组合:itertools.combinations(iterable, r)

import itertools
for i in itertools.combinations('ABCD', 3):
  print (''.join(i))

输出结果:

ABC
ABD
ACD
BCD

四、组合(包含自身重复):itertools.combinations_with_replacement(iterable, r)

import itertools
for i in itertools.combinations_with_replacement('ABCD', 3):
  print (''.join(i),end=' ')

输出结果:

AAA AAB AAC AAD ABB ABC ABD ACC ACD ADD BBB BBC BBD BCC BCD BDD CCC CCD CDD DDD

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
Python多线程编程(五):死锁的形成
Apr 05 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
python导出hive数据表的schema实例代码
Jan 22 Python
Python 中Pickle库的使用详解
Feb 24 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
Python 硬币兑换问题
Jul 29 Python
Python代码中如何读取键盘录入的值
May 27 Python
python使用多线程查询数据库的实现示例
Aug 17 Python
如何使用 Flask 做一个评论系统
Nov 27 Python
python绘制立方体的方法
Jul 02 #Python
python numpy 一维数组转变为多维数组的实例
Jul 02 #Python
Python实现通过继承覆盖方法示例
Jul 02 #Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 #Python
Python 中的range(),以及列表切片方法
Jul 02 #Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 #Python
分享vim python缩进等一些配置
Jul 02 #Python
You might like
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
js 中 document.createEvent的用法
2010/08/29 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
使用js 设置url参数
2013/07/08 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
uniapp实现横向滚动选择日期
2020/10/21 Javascript
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
如何写python的配置文件
2020/06/07 Python
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
单位实习证明怎么写
2014/01/17 职场文书
经典英文广告词
2014/03/18 职场文书
新品发布会策划方案
2014/06/08 职场文书
竞赛口号大全
2014/06/16 职场文书
2014年领班工作总结
2014/11/25 职场文书
2014年标准化工作总结
2014/12/17 职场文书
不同意离婚代理词
2015/05/23 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript
教你部署vue项目到docker
2022/04/05 Vue.js