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

yipeiwu_com6年前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生成不重复随机数和对list乱序的解决方法

andom.sample(list, n)即是从list中随机选取n个不同的元素 # -*- coding: utf-8 -*- import random # 从一个list中...

Python中print和return的作用及区别解析

print只是为了向用户显示一个字符串,表示计算机内部正在发生的事情。计算机却无法使用该print出现的内容。 return是函数的返回值。该值通常是人类用户看不到的,但是计算机可以在其...

Pytorch入门之mnist分类实例

本文实例为大家分享了Pytorch入门之mnist分类的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding: utf-8 -*-...

python里对list中的整数求平均并排序

问题 定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数, (1)将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输...

Python实现简单的用户交互方法详解

Python实现简单的用户交互方法详解

我们经常使用的程序都会有与用户交互的程序,比如网页的登录,需要输入自己的账号,密码这类的用户交互功能。 我们来写个简单的用户输入和输出的程序代码: user1 = input("账号...