Python排列组合
2018-05-22 21:56
393 查看
product 笛卡尔积 (有放回抽样排列)
permutations 排列 (不放回抽样排列)
combinations 组合,没有重复 (不放回抽样组合)
combinations_with_replacement 组合,有重复 (有放回抽样组合)
>>> import itertools >>> for i in itertools.product('ABCD', repeat = 2): ... print(i) ... ('A', 'A') ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'A') ('B', 'B') ('B', 'C') ('B', 'D') ('C', 'A') ('C', 'B') ('C', 'C') ('C', 'D') ('D', 'A') ('D', 'B') ('D', 'C') ('D', 'D') >>> for i in itertools.permutations('ABCD', 2): ... print(i) ... ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'A') ('B', 'C') ('B', 'D') ('C', 'A') ('C', 'B') ('C', 'D') ('D', 'A') ('D', 'B') ('D', 'C') >>> for i in itertools.combinations('ABCD', 2): ... print(i) ... ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'C') ('B', 'D') ('C', 'D') >>> for i in itertools.combinations_with_replacement('ABCD', 2): ... print(i) ... ('A', 'A') ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'B') ('B', 'C') ('B', 'D') ('C', 'C') ('C', 'D') ('D', 'D')>>> import itertools >>> for i in itertools.product('ABCD', repeat = 2): ... print(i) ... ('A', 'A') ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'A') ('B', 'B') ('B', 'C') ('B', 'D') ('C', 'A') ('C', 'B') ('C', 'C') ('C', 'D') ('D', 'A') ('D', 'B') ('D', 'C') ('D', 'D') >>> for i in itertools.permutations('ABCD', 2): ... print(i) ... ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'A') ('B', 'C') ('B', 'D') ('C', 'A') ('C', 'B') ('C', 'D') ('D', 'A') ('D', 'B') ('D', 'C') >>> for i in itertools.combinations('ABCD', 2): ... print(i) ... ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'C') ('B', 'D') ('C', 'D') >>> for i in itertools.combinations_with_replacement('ABCD', 2): ... print(i) ... ('A', 'A') ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'B') ('B', 'C') ('B', 'D') ('C', 'C') ('C', 'D') ('D', 'D')
combinations和permutations返回的是对象地址,原因是在python3里面,返回值已经不再是list,而是iterators(迭代器), 所以想要使用,只用将iterator 转换成list 即可
相关文章推荐
- 高效率的排列组合算法--《编程珠矶》--python实现
- 输出给定集合的所有排列与组合-python
- python 排列组合之itertools
- Python的排列组合运用
- 简单明了的Python 排列组合功能
- python的排列组合
- Python排列组合实验
- python 排列组合
- Python 排列组合的计算
- Python itertools 排列组合
- python 实现排列组合
- python实现排列组合公式C(m,n)求值
- Python2.7实现笛卡尔积N个数组的排列组合
- python排列组合之itertools模块
- lintcode刷题(python)--排列组合
- 经典递归算法之排列,组合,集合和换零钱, Python yield实现.
- 【Python】排列组合itertools & 集合set
- python itertools模块实现排列组合
- 基于python快速实现排列组合算法
- python 排列组合