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

yipeiwu_com5年前Python基础

本文实例讲述了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一键去抖音视频水印工具

无水印视频下载 方法一: 无水印视频下载很简单,有一个通用的方法,就是使用去水印平台即可。 我使用的去水印平台是:http://douyin.iiilab.com/ 在输入框中输入视频链...

Django进阶之CSRF的解决

Django进阶之CSRF的解决

简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。而对于django中设置防跨站...

python利用requests库进行接口测试的方法详解

前言 之前介绍了接口测试中需要关注得测试点,现在我们来看看如何进行接口测试,现在接口测试工具有很多种,例如:postman,soapui,jemter等等,对于简单接口而言,或者我们只想...

跟老齐学Python之不要红头文件(1)

跟老齐学Python之不要红头文件(1)

这两天身体不给力,拖欠了每天发讲座的约定,看官见谅。 红头文件,是某国特别色的东西,在python里不需要,python里要处理的是计算机中的文件,包括文本的、图片的、音频的、视频的等等...

Python找出9个连续的空闲端口

一、项目需求 安装某软件,配置时候需要填写空闲的端口。查看5个平台的某个端口是否被占用 5个平台为windows, linux, aix, hp, solaris 二、实现方案有两种 1...