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抓取网页中的图片示例
Feb 28 Python
Python中的闭包实例详解
Aug 29 Python
python 二分查找和快速排序实例详解
Oct 13 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
python实现的Iou与Giou代码
Jan 18 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
Pytorch中的学习率衰减及其用法详解
Jun 05 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
PDO::_construct讲解
2019/01/27 PHP
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python实现中文分词FMM算法实例
2015/07/10 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
在python中画正态分布图像的实例
2019/07/08 Python
详解python itertools功能
2020/02/07 Python
python中的yield from语法快速学习
2020/11/06 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
美国在线工具商店:Acme Tools
2018/06/26 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
春季防火方案
2014/05/10 职场文书
卫生标语大全
2014/06/21 职场文书
检讨书范文
2015/01/27 职场文书
地球一小时活动总结
2015/02/27 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
vue router 动态路由清除方式
2022/05/25 Vue.js
如何利用python实现Simhash算法
2022/06/28 Python