python常规方法实现数组的全排列

yipeiwu_com7年前Python基础

本文实例讲述了常规方法实现python数组的全排列操作。分享给大家供大家参考。具体分析如下:

全排列解释:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

def perm(l):
  if(len(l)<=1):
    return [l]
  r=[]
  for i in range(len(l)):
    s=l[:i]+l[i+1:]
    p=perm(s)
    for x in p:
      r.append(l[i:i+1]+x)
  return r

调用方法:

if __name__=='__main__': 
  """ default param is list(1,2,3,4,5) """
  l=[]; 
  if(len(sys.argv)<=1): 
    """input=['%d' %(i) for i in xrange(1,6)]"""
    l=list((1,2,3,4,5))
  else:#input param looks like "2,3,4,5,6",no legal checks here.
    input=str(sys.argv[1])
    l=input.split(",") 
    for i in xrange(len(l)): 
      l[i] = int(l[i]) 
  print perm(l)

希望本文所述对大家的Python程序设计有所帮助。

相关文章

Python中的上下文管理器和with语句的使用

Python2.5之后引入了上下文管理器(context manager),算是Python的黑魔法之一,它用于规定某个对象的使用范围。本文是针对于该功能的思考总结。 为什么需要上下文管...

python图像常规操作

python图像常规操作

使用python进行基本的图像操作与处理 前言: 与早期计算机视觉领域多数程序都是由 C/C++ 写就的情形不同。随着计算机硬件速度越来越快,研究者在考虑选择实现算法语言的时候会更多地考...

Python3视频转字符动画的实例代码

Python3视频转字符动画,具体代码如下所示: # -*- coding:utf-8 -*- import json import os import subprocess fr...

pandas 选择某几列的方法

如下所示: col_n = ['名称','收盘价','日期'] a = pd.DataFrame(df,columns = col_n) 以上这篇pandas 选择某几列的方法就...

python得到电脑的开机时间方法

python得到电脑的开机时间方法

如下所示: #先下载psutil库:pip install psutil import psutil import os,datetime def main(): print "...