python itertools模块实现排列组合
转自:https://blog.csdn.net/specter11235/article/details/71189486
一、笛卡尔积: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 itertools模块实现排列组合的更多相关文章
- python itertools模块练习
参考 <python标准库> 也可以参考Vamei博客 列表用着很舒服,但迭代器不需要将所有数据同时存储在内存中. 本章练习一下python 标准库中itertools模块 合并 和 分解 ...
- python自带的排列组合函数
需求: 在你的面前有一个n阶的台阶,你一步只能上1级或者2级,请计算出你可以采用多少种不同的方法爬完这个楼梯?输入一个正整数表示这个台阶的级数,输出一个正整数表示有多少种方法爬完这个楼梯. 分析:提炼 ...
- 转:Python itertools模块
itertools Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 首先,我们看看itertools提供的几个"无限"迭代器: >>& ...
- python, itertools模块
通过itertools模块,可以用各种方式对数据进行循环操作 1, chain() from intertools import chain for i in chain([1,2,3], ('a', ...
- python itertools 模块
Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数 首先,我们看看itertools提供的几个“无限”迭代器: >>> import itertools ...
- python itertools 模块讲解
1.介绍itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存. 使用这些工具,你将能够创建自己定制的迭代器用于高效率的循环. - 无限迭代器 itertool ...
- 数字货币量化教程——使用itertools实现各种排列组合
在量化数据处理中,经常使用itertools来完成数据的各种排列组合以寻找最优参数 一.数据准备 import itertools items = [1, 2, 3] ab = ['a', 'b'] ...
- itertools模块、排列、组合、算法
关于列表重组的python小题 题目一:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例:输入: nums = ...
- Python itertools模块详解
这货很强大, 必须掌握 文档 链接 http://docs.python.org/2/library/itertools.html pymotw 链接 http://pymotw.com/2/iter ...
随机推荐
- JavaGUI应用程序打包及数字签名
JavaGUI应用程序部署 JavaGUI程序发布分类: a.Applet:可以嵌入到浏览器中,通过网页的方式展示给用户 b.application :有两种发布方式 :打包成jar包通过bat的方式 ...
- C#中,变量前的@符号
看别人写的C#代码,发现有变量前带@,啥意思? string @namespace = "EnterpriseServerBase.WebService.DynamicWebCalling& ...
- java反射(1)
反射反射,程序员的快乐. 第一次了解反射这个概念是从<<大话设计>>中所了解到的.当时只是对概念的模糊了解,具体对它的机制并不清楚.最近在学习并实践SSH框架,其中Spring ...
- Java中有多少种设计模式?请简单画一下三种常见设计模式的类图?
转载:http://blog.csdn.net/longyulu/article/details/9159589 一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽 ...
- PHP 7.2 RC3 on CentOS/RHEL 7.3 via Yum
https://webtatic.com/packages/php72/ rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-lat ...
- windows安装SVN服务器并设置开机启动
1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装,在命令行下运行svn命令,如下所以,则svn服务器安 ...
- get the default proxy by Powershell
https://stackoverflow.com/questions/571429/powershell-web-requests-and-proxies $proxyAddr = (get-ite ...
- YTU 1012: A MST Problem
1012: A MST Problem 时间限制: 1 Sec 内存限制: 32 MB 提交: 7 解决: 4 题目描述 It is just a mining spanning tree ( 最 ...
- Easier SQL with Cupboard
Overview Cupboard is a way to manage persistence in a sqlite instance for your app. It was written b ...
- sphinx索引部分源码续——过程:连接到CSphSource对应的sql数据源,通过fetch row取其中一行,然后解析出field,分词,获得wordhit,最后再加入到CSphSource的Hits里
后面就是初始化一些存储结构,其中重点说下缓存出来的几个临时文件分别的作用.结尾时tmp0的存储的是被上锁的Index,有些Index正在被查询使用 故上锁.tmp1,即对应将来生成的spp文件,存储词 ...