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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
python通过exifread模块获得图片exif信息的方法
Mar 16 Python
python类和函数中使用静态变量的方法
May 09 Python
详解Python多线程
Nov 14 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
对Pycharm创建py文件时自定义头部模板的方法详解
Feb 12 Python
python保存log日志,实现用log日志画图
Dec 24 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 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中文件上传的安全问题
2006/10/09 PHP
drupal 代码实现URL重写
2011/05/04 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
angular+webpack2实战例子
2017/05/23 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
Python列表删除的三种方法代码分享
2017/10/31 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
Android笔试题总结
2014/11/29 面试题
《长城和运河》教学反思
2014/04/14 职场文书
迎国庆主题班会
2015/08/17 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
Python中的tkinter库简单案例详解
2022/01/22 Python
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS