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实现PS滤镜的旋转模糊功能示例
Jan 20 Python
python 读取摄像头数据并保存的实例
Aug 03 Python
PYQT5实现控制台显示功能的方法
Jun 25 Python
对python中的float除法和整除法的实例详解
Jul 20 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
Python configparser模块封装及构造配置文件
Aug 07 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
python用Configobj模块读取配置文件
Sep 26 Python
解决Tkinter中button按钮未按却主动执行command函数的问题
May 23 Python
python 进阶学习之python装饰器小结
Sep 04 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 加密与解密的斗争
2009/04/17 PHP
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
php数据库密码的找回的步骤
2011/01/12 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
JS模板实现方法
2013/04/03 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
一些.net面试题
2014/10/06 面试题
关于护士节的演讲稿
2014/05/26 职场文书
客户答谢会致辞
2015/01/20 职场文书
中秋节感想
2015/08/10 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript
python turtle绘图
2022/05/04 Python
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL