python以列表的形式输出_简单介绍python输出列表元素的所有排列形式
今天小编就为大家分享一篇浅谈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输出列表元素的所有排列形式相关推荐
- python 表格格式输出_简单介绍python输出列表元素的所有排列形式
今天小编就为大家分享一篇浅谈python输出列表元素的所有排列形式,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 例如: ['a', 'b', 'c'] 输出 ['a', 'b', ...
- python中len用法_简单介绍Python中的len()函数的使用
简单介绍Python中的len()函数的使用 函数:len() 1:作用:返回字符串.列表.字典.元组等长度 2:语法:len(str) 3:参数:str:要计算的字符串.列表.字典.元组等 4:返回 ...
- python写整数逆位运算_简单了解python的一些位运算技巧
前言 位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中 ...
- python协程异步原理_简单介绍Python的Tornado框架中的协程异步实现原理
Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, ...
- python中函数的可变参数_简单谈谈Python中函数的可变参数
前言 在Python中定义函数,可以用必选参数.默认参数.可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数和关键字参数. ...
- python简单装饰器_简单介绍Python装饰器(一)
装饰器的作用 相信大家在 探索过程中已经了解装饰器的作用,也有很多花里胡哨的介绍. 这次小冰也来讲解一下关于Python装饰器的一些小知识. 它的作用: 性能测试 日志 安全验证 ...... 相信大 ...
- python内存的回收机制_简单介绍python的垃圾回收机制
这篇文章主要介绍了python垃圾回收机制的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是垃圾回收机制? 首先,咱先来解释名词,垃圾回收是不是就是将没用的,废弃的东西回 ...
- python装饰器的通俗理解_简单理解Python装饰器
Python有大量强大又贴心的特性,如果要列个最受欢迎排行榜,那么装饰器绝对会在其中. 刚接触装饰器,会觉得代码不多却难以理解.其实装饰器的语法本身挺简单的,复杂是因为同时混杂了其它的概念.下面我们一 ...
- python爬虫办公实例100例_简单的python爬虫实例
爬取搜索出来的所有"中东人"的图片: 先看一下源代码,找到存放图片链接的地方,在源代码最下面的部分: 先说一下思路: 构造url列表=>依次爬取每个页面=>先在网页源代 ...
最新文章
- 微软白皮书:47页报告详解中国芯片设计云技术
- 《剑指offer》c++版本 13. 机器人的运动范围
- ubuntu下文件名乱码的解决办法
- 怎么把 CDialogBar像工具条一样使用,有图有真相
- IOS数据存储 —— 1 沙盒(数据存储目录)
- getReadableDatabase VS getWritableDatabase
- 大数据分块_空间数据库基础理论 GIS空间数据处理分析涉及的基本概念
- 专题训练——[kuangbin带你飞]最短路练习
- 面试题:谈谈你对Mysql数据库优化的见解
- python中line是什么意思_python 中循环 line for line in file(filename)什么意思?
- 地址解析协议(ARP)
- 千帆竞发-Redis分布式锁
- php cookie 注入,LiveZilla 'setCookieValue()'函数PHP对象注入漏洞
- 知识点总结之学习方式
- linux 时间戳计数器,用时间戳计数器测量频率的方法(下)-测试测量-与非网
- Java8新特性(二)流式处理
- zillow房价预测比赛_如何看待 Kaggle 发布的 Zillow 房价预测比赛?
- win10自动安装软件
- Tez的web UI简单体验
- Github常用英文翻译
热门文章
- Spring Boot 学习之,AOP统一处理请求日志
- oracle简易数据库搭建,Oracle 10g 手工创建一个最简单的数据库
- ShadeGraph教程之节点详解4:Master Nodes
- php弹出是否,Javascript警报弹出窗口是否会扩展PHP会话?
- OpenShift 4 - DevSecOps Workshop (6) - 为Pipeline增加SonarQube实现SAST
- Ubuntu 20.10 Beta 版本发布
- LookAheadEnumerator:在解析器中实现回溯
- 斯坦福大学发布 2019 人工智能指数报告
- Visual Studio 2019 16.3 Preview 3 发布,使用 IntelliCode 重构更容易
- python文件写入_python 文件读写操作