python通过yield实现数组全排列的方法
2015-03-18 09:14
731 查看
本文实例讲述了python通过yield实现数组全排列的方法。分享给大家供大家参考。具体分析如下:
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。
这段代码用到了yield方法,全排列速度加倍
def perm(arr, pos = 0): if pos == len(arr): yield arr for i in range(pos, len(arr)): arr[pos], arr[i] = arr[i], arr[pos] for _ in perm(arr, pos + 1): yield _ arr[pos], arr[i] = arr[i], arr[pos] for i in perm([1,2,3,4]): print i
希望本文所述对大家的Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- C#通过yield实现数组全排列的方法
- python常规方法实现数组的全排列
- python标准算法实现数组全排列的方法
- Python通过解析网页实现看报程序的方法
- python回溯法实现数组全排列输出实例分析
- python实现通过代理服务器访问远程url的方法
- python通过函数属性实现全局变量的方法
- python使用smtplib模块通过gmail实现邮件发送的方法
- python实现合并两个数组的方法
- 用Python实现fib数列的几个方法(yield的应用)
- python实现通过代理服务器访问远程url的方法
- Python通过解析网页实现看报程序的方法
- python通过线程实现定时器timer的方法
- python通过BF算法实现关键词匹配的方法
- python实现将元祖转换成数组的方法
- 通过委托实现方法数组来代替switch分支语句
- python通过BF算法实现关键词匹配的方法
- 数组全排列的递归方法实现
- python通过shutil实现快速文件复制的方法
- python使用smtplib模块通过gmail实现邮件发送的方法