打印数组所有排列 python

本人.net一名,最近在看数据结构与算法分析,中间涉及的一些比较有意思的算法题,打算用python实现以下。选择python的原因,就是想熟悉一下python的语法,和pycharm基本的应用。

本篇,算法为:打印数组的所有排列可能。废话不多说,直接上代码。

 1 #自动生成list
 2 def creataList(n):
 3     numlist=[];
 4     for i in range(n):
 5         numlist.append(i);
 6
 7     return numlist;
 8 #copy list排除某一个元素
 9 def copewithout(lst,index):
10     newlst=[];
11     for i in range(len(lst)):
12         if(i==index):
13             continue;
14         newlst.append(lst[i]);
15     return newlst;
16
17 #打印所有排列
18 def printallchildlist(numlist,index,printlist,length):
19     if(index==length-1):
20         printlist[index]=numlist[0];
21         print(printlist);
22     else:
23         for i in range(len(numlist)):
24             printlist[index]=numlist[i];
25             newnumlst=copewithout(numlist,i);
26             printallchildlist(newnumlst,index+1,printlist,length);
27 #主函数
28 def domain(num):
29     numlst=creataList(num);
30     printlst=creataList(num);
31     printallchildlist(numlst,0,printlst,num);
32
33 domain(3);

这是测试结果:

D:\Learning\Python\Test\venv\Scripts\python.exe D:/Learning/Python/Test/2.13.py
[0, 1, 2]
[0, 2, 1]
[1, 0, 2]
[1, 2, 0]
[2, 0, 1]
[2, 1, 0]

  

原文地址:https://www.cnblogs.com/answerme/p/9302356.html

时间: 2024-10-09 17:09:19

打印数组所有排列 python的相关文章

Java基础知识强化105:打印数组的方法总结

1. 使用for循环打印数组. 2. 使用Arrays工具类,将数组转化为有序的List打印出来. 3. 使用Arrays工具类,使用Arrays.toString()输出数组内容. 上面三种方法打印数组的示例代码如下: package com.himi.printarray; import java.util.Arrays; public class AnormalArray { public static void main(String[] args) { /** * 使用for循环打印数

JS数组方法与python列表方法的比较

JS的数组(Array)与python的列表(List)很相似,本人因为之前学过JS,后来学习python感觉有些方法很容易混淆,这里对常用的一些方法做些区分 增 删 改 查 排序 逆序 增加元素 1.添加元素到末尾 Array.push(x1, x2, x3, ...); //javascript中,可将1个或多个元素一次性添加到原数组末尾,原数组改变,返回值为原数组新长度 List.append(x) #python中,一次只能添加1个元素到原列表末尾,原列表改变,无返回值 2.添加数组(或

问答项目---封装打印数组的方法

封装格式化打印数组的方法: /* 格式化打印出数组 */ function p($arr){ echo "<pre>"; var_dump($arr); echo "</pre>"; } function pd($arr){ echo "<pre>"; var_dump($arr);die(); echo "</pre>"; }

PHP数组输出三种形式 PHP打印数组

PHP数组输出三种形式 PHP打印数组 $bbbb=array("11"=>"aaa","22"=>"bbb");//方式一:只能输出值value不能输出keyforeach($bbbb as $color)echo $color; //方法二:value与key都可输出foreach($bbbb as $key=>$value)echo $key."=>".$value; //方法

循环打印数组,并统计个数shell脚本

使用Shell循环打印数组 [[email protected] array]# cat a.sh #!/bin/bash array=( freddy freddie tang sheng wei ) for ((i=0;i<${#array[@]};i++));do echo "This is num $i,then content is ${array[$i]}" #$i是下标 done echo "-----------------" echo &qu

9.10扩展性与存储限制(三)——若只有4KB内存可用,该如何打印数组中所有重复的元素

/** * 功能:给定一个数组,包含1到N的整数,N最大为32000,数组可能含有重复的值,且N的取值不定. * 若只有4KB内存可用,该如何打印数组中所有重复的元素. */ /** * 思路:4KB最多殉职8*4*2^10个比特.比32000大.创建含有32000个比特的位向量,其中每个比特代表一个整数. * 遇到重复元素,打印出来. * @param array */ public static void checkDuplicates(int[] array){ BitSet bs=new

剑指Offer-顺时针打印数组

题目描述:输入一个数组(m*n维),要求从外向里顺时针打印数组的元素. #include <iostream> #include <stdio.h> using namespace std; void PrintMatrixInCircle(int **numbers,int rows,int columns,int start); void printNumber(int number); void PrintMatrixCircle(int **numbers,int rows

php 打印数组格式化显示

输出前添加 <pre>,便可以自动格式化换行显示. print_r("<pre>"); 比如打印数组 : print_r($arr); 输出: Array ( [0] => Array ( [volume] => id100343 [weight] => 4 ) [1] => Array ( [volume] => id100212 [weight] => 1 ) [2] => Array ( [volume] =>

剑指offer-字符串的排列-数组-递归-动态规划-python

题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母. class Solution: def Permutation(self, ss): if len(ss) <= 1: return ss res = set() # 遍历字符串,固定第一个元素,第一个元素可以取a,b,c...,