python通过yield实现数组全排列的方法


Posted in Python onMarch 18, 2015

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
python中list循环语句用法实例
Nov 10 Python
python中迭代器(iterator)用法实例分析
Apr 29 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
Jul 26 Python
Python获取网段内ping通IP的方法
Jan 31 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
Pytorch之卷积层的使用详解
Dec 31 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
在Python中如何使用yield
Jun 07 Python
python以环状形式组合排列图片并输出的方法
Mar 17 #Python
python将ip地址转换成整数的方法
Mar 17 #Python
python实现模拟按键,自动翻页看u17漫画
Mar 17 #Python
python通过pil为png图片填充上背景颜色的方法
Mar 17 #Python
python按照多个字符对字符串进行分割的方法
Mar 17 #Python
python通过floor函数舍弃小数位的方法
Mar 17 #Python
python常规方法实现数组的全排列
Mar 17 #Python
You might like
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
来自phpguru得Php Cache类源码
2010/04/15 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
python的绘图工具matplotlib使用实例
2014/07/03 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
基于python 取余问题(%)详解
2020/06/03 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
教师先进工作者事迹材料
2014/05/01 职场文书
小学捐书活动总结
2014/07/05 职场文书
庆祝教师节活动总结
2015/03/23 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
导游词之青岛太清宫
2019/12/13 职场文书