今天小编就为大家分享一篇浅谈python输出列表元素的所有排列形式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

例如:

[‘a', ‘b', ‘c'] 输出 [‘a', ‘b', ‘c'] [‘a', ‘c', ‘b'] [‘b', ‘a', ‘c'] [‘b', ‘c', ‘a'] [‘c', ‘a', ‘b'] [‘c', ‘b', ‘a']

方法一:利用递归的方式实现

def permutation(li):

len_list = len(li)

if len_list == 1:

return li

result = []

for i in range(len_list):

res_list = li[:i] + li[i+1:]

s = li[i]

per_result = permutation(res_list)

if len(per_result) == 1:

result.append(li[i:i + 1] + per_result)

else:

result += [[s] + j for j in per_result]

return result

方法二:利用python自带的模块

import itertools

def permutation(li):

print(list(itertools.permutations(li)))

补充拓展:python实现四个数字的全排列

首先我们使用常规做法,循环交换完成。

lst = [1, 3, 5, 8]

for i in range(0, len(lst)):

lst[i], lst[0] = lst[0], lst[i]

for j in range(1, len(lst)):

lst[j], lst[1] = lst[1], lst[j]

for h in range(2, len(lst)):

print(lst)

lst[j], lst[1] = lst[1], lst[j]

lst[i], lst[0] = lst[0], lst[i]

如果列表较长,元素较多,以上常规方法实现起来就比较吃力了,以下我们采用递归方式实现。

def permutations(position):

if position == len(lst) - 1:

print(lst)

else:

for index in range(position, len(lst)):

lst[index], lst[position] = lst[position], lst[index]

permutations(position+1)

lst[index], lst[position] = lst[position], lst[index]

permutations(0)

以上这篇浅谈python输出列表元素的所有排列形式就是小编分享给大家的全部内容了,希望能给大家一个参考。

python 表格格式输出_简单介绍python输出列表元素的所有排列形式相关推荐

  1. python以列表的形式输出_简单介绍python输出列表元素的所有排列形式

    今天小编就为大家分享一篇浅谈python输出列表元素的所有排列形式,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 例如: ['a', 'b', 'c'] 输出 ['a', 'b', ...

  2. python中len用法_简单介绍Python中的len()函数的使用

    简单介绍Python中的len()函数的使用 函数:len() 1:作用:返回字符串.列表.字典.元组等长度 2:语法:len(str) 3:参数:str:要计算的字符串.列表.字典.元组等 4:返回 ...

  3. python打开excel窗口_简单介绍python在CMD界面读取excel所有数据

    这篇文章主要介绍了python在CMD界面读取excel所有数据,帮助大家更好的利用python办公,感兴趣的朋友可以了解下 代码 import xlrd import os from prettyt ...

  4. len函数python返回值类型_简单介绍Python中的len()函数的使用

    01状态机介绍 游戏中的状态机一般都是有限状态机,简写为FSM(有限状态机),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型. 状态机的每一个状态至少需要有以下三个操作: ...

  5. python中输入字符串_简单讲解Python中的字符串与字符串的输入输出

    简单讲解Python中的字符串与字符串的输入输出 发布于 2016-03-26 14:35:42 | 110 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向 ...

  6. python协程异步原理_简单介绍Python的Tornado框架中的协程异步实现原理

    Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, ...

  7. djpython教程_简单介绍Python的Django框架的dj-scaffold项目

    由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑.为此我又新创建了一个开源项目dj-scaffold(django的脚手架).这个项 ...

  8. python缩进格式作用_缩进(Python很将就格式)

    空白在Python中是重要的.事实上行首的空白是重要的.它称为缩进.在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组. 这意味着同一层次的语句必须有相同的缩进.每一组这 ...

  9. python中整型_实例介绍Python中整型

    实例介绍Python中整型 Python中有以下几个基本的数据类型: 整数 int 字符串 str 浮点数 float 集合 set 列表 list 元组 tuple 字典 dict 布尔类型 boo ...

最新文章

  1. 原来书中说的JVM默认垃圾回收器是错的!
  2. Typecho给文章设置永久链接
  3. Java黑皮书课后题第7章:**7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数。假定输入0表示结束
  4. 服务器运维一般的故障率,服务器平均故障率
  5. c语言while队列不为空,C语言实现循环队列的初始化进队出队读取队头元素判空-2...
  6. 问题记录——com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure...
  7. 为什么要发展鸿蒙,我们为什么需要鸿蒙?
  8. 关于 MySQL 8.0 新特性“隐藏索引”的一点思考
  9. 教大家一个免费复制粘贴百度文库文字的方法
  10. laravel对象转数组
  11. 快速了解 Log4j的日志级别
  12. 19、论文解读:Intensity Scan Context: Coding Intensity and Geometry Relations for Loop Closure Detection
  13. pep8 python 编码规范下载_PEP8 Python 编码规范整理
  14. 推荐算法(一)——FM因式分解机
  15. Linux系统安装开源版PyMOL
  16. 袁萌:Linux的十项重要进展
  17. Android日历移植小结
  18. 抱抱脸:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷论文
  19. 域名dns 域名dns解析查询
  20. 【自考一次过】《信息资源管理》第4章 信息系统资源内容管理

热门文章

  1. matlab2014启动很慢,matlab启动慢的解决方法
  2. python函数myproduct_OpenERP与Python 元编程
  3. python开发k8s管理平台_运维开发和k8s运维如何选择,请各位大神指导一下?
  4. 关于delphi中多线程采用定时器的做法
  5. 10、Spring Boot 2.x 集成 Log4j2
  6. [C++] STL标准模板库
  7. intelliJ idea 激活和配置
  8. ZOJ1004 DFS基础
  9. Play Framework + ReactiveMongo 环境搭建
  10. Android开发---开发文档翻译