博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python把list的所有元素生成排列和组合
阅读量:7122 次
发布时间:2019-06-28

本文共 1783 字,大约阅读时间需要 5 分钟。

hot3.png

生成排列可以用 itertools.product:

from itertools import productl = [1, 2, 3]print(list(product(l, l)))

[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]

print(list(product(l, repeat=4)))

[(1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3), (1, 1, 2, 1), (1, 1, 2, 2), (1, 1, 2, 3), (1, 1, 3, 1), (1, 1, 3, 2), (1, 1, 3, 3), (1, 2, 1, 1), (1, 2, 1, 2), (1, 2, 1, 3), (1, 2, 2, 1), (1, 2, 2, 2), (1, 2, 2, 3), (1, 2, 3, 1), (1, 2, 3, 2)

, (1, 2, 3, 3), (1, 3, 1, 1), (1, 3, 1, 2), (1, 3, 1, 3), (1, 3, 2, 1), (1, 3, 2, 2), (1, 3, 2, 3), (1, 3, 3, 1), (1, 3, 3, 2), (1, 3, 3, 3), (2, 1, 1, 1), (2, 1, 1, 2), (2, 1, 1, 3), (2, 1, 2, 1), (2, 1, 2, 2), (2, 1, 2, 3), (2, 1, 3, 1
), (2, 1, 3, 2), (2, 1, 3, 3), (2, 2, 1, 1), (2, 2, 1, 2), (2, 2, 1, 3), (2, 2, 2, 1), (2, 2, 2, 2), (2, 2, 2, 3), (2, 2, 3, 1), (2, 2, 3, 2), (2, 2, 3, 3), (2, 3, 1, 1), (2, 3, 1, 2), (2, 3, 1, 3), (2, 3, 2, 1), (2, 3, 2, 2), (2, 3, 2,
3), (2, 3, 3, 1), (2, 3, 3, 2), (2, 3, 3, 3), (3, 1, 1, 1), (3, 1, 1, 2), (3, 1, 1, 3), (3, 1, 2, 1), (3, 1, 2, 2), (3, 1, 2, 3), (3, 1, 3, 1), (3, 1, 3, 2), (3, 1, 3, 3), (3, 2, 1, 1), (3, 2, 1, 2), (3, 2, 1, 3), (3, 2, 2, 1), (3, 2, 2,
 2), (3, 2, 2, 3), (3, 2, 3, 1), (3, 2, 3, 2), (3, 2, 3, 3), (3, 3, 1, 1), (3, 3, 1, 2), (3, 3, 1, 3), (3, 3, 2, 1), (3, 3, 2, 2), (3, 3, 2, 3), (3, 3, 3, 1), (3, 3, 3, 2), (3, 3, 3, 3)]

 

组合的话可以用 itertools.combinations:

from itertools import combinationsprint(list(combinations([1,2,3,4,5], 2)))

[(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)]

print(list(combinations([1,2,3,4,5], 3)))

[(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5), (2, 3, 4), (2, 3, 5), (2, 4, 5), (3, 4, 5)]

 

可用于在限制某些字符不能重复出现等情况,就可以把列表的元素进行排列或组合,判断是否在结果中即可.

转载于:https://my.oschina.net/zhupengdaniu/blog/1502696

你可能感兴趣的文章
rasa_core:基于机器学习的对话引擎
查看>>
Android连接 Mysql: 解决mysql-connector-java驱动编译时Dex cannot parse version 52 byte code...等错误...
查看>>
答「那些初中高中就接触编程的人后来怎么样了」
查看>>
Angular 2.0 浅入浅出
查看>>
浅谈OpenStack与虚拟机的区别与联系
查看>>
Hive metastore整体代码分析及详解
查看>>
国际大牌背后的IT制胜秘诀
查看>>
渐进式Web应用(PWA)入门教程(上)
查看>>
MIUI 系统 BUG,Android 调用相机崩溃?将拍照适配方案进行到底!
查看>>
技术面试中常见的几道智力题 来看看你会做几道?
查看>>
前端常用功能记录(二)—datatables表格
查看>>
机器与人类的结合:外骨骼机器人的现状和趋势
查看>>
用Python进行机器学习(附代码、学习资源)
查看>>
微软发布 .NET for Apache Spark 首个预览版
查看>>
九州量子全球首个密钥云:让“一对多”模式成为可能
查看>>
Hmily 2.0.3 发布,高性能异步分布式事务 TCC 框架
查看>>
还在找什么,JavaScript的异步编程解决方案全在这里了
查看>>
iView 3.3.0 发布,基于 Vue.js 的企业级 UI 组件库
查看>>
如何使用表格存储控制台进行数据监控
查看>>
量子力学,在生命的世界里
查看>>