python输出元组重复的元素_python – 从n个元素生成所有4元组对
我希望在给定大小为n的数组的情况下生成所有可能的4元组对的列表. n至少为8,因此总能找到至少1对.
作为一个有助于理解问题的例子,我使用较小版本的问题,2元组对给出一个大小为5的数组.2元组对的预期结果将导致15个项目(元组被排序,没有重复) :
[(1,2),(3,4)],[(1,5)],(4,3),( 2,(2,4),3)],[( 1,5),[(2,4)]
我目前的方法是使用python中的itertools并遍历itertools.combinations返回的所有元素,执行2个循环并找到不共享单个元素的2对然后使用该元素.
为了在python代码中表达这一点,我准备了一个小片段:
arr = list(range(30)) # example list
comb = list(itertools.combinations(range(0,len(arr)),4))
for c1 in comb:
for c2 in comb: # go through all possible pairs
if len([val for val in c1 if val in c2]) == 0: # intersection of both sets results in 0,so they don't share an element
... # do something and check for duplicates
此方法正在完成其工作,但由于2个循环而效率低,并且仅在给定时间范围内适用于小n.这可以更有效率吗?
更新:在一些答案后,我评估了建议.对于我的特定情况,最好的事情是MSeifert的(现已删除的)答案提供的(扩展)算法,它执行速度最快:
def generate_four_pairs(n):
valids = range(0,n)
for x00,x01,x02,x03,x10,x11,x12,x13 in itertools.combinations(valids,8):
yield [x00,x03],[x10,x13]
yield [x00,x10],[x03,x11],x12],x13],x12]
yield [x00,[x02,x11]
yield [x00,[x01,x10]
yield [x01,x00],x13]
yield [x01,[x00,x12]
yield [x01,x11]
yield [x01,x13,x11]
对于一般方法,我建议NPE提供的答案,因为这是这个问题的最简单和最简单的可读答案.
python输出元组重复的元素_python – 从n个元素生成所有4元组对相关推荐
- python输出不重复的单词_Python情感分析(比较单词时,不计算文本中重复的单词)...
您可以使用嵌套的for loop来实现这一点,但是这并不是解决简单问题的好方法:for posWord in posWords: for test in readFile: if i == test: ...
- python练习-Python输出不重复的字符
#Python输出不重复的字符#输入一个字符串,把最左边的10个不重复的字符(大小写算不同字符)挑选出来 #如果不重复的字符不到10个,则按实际数目输出 #输入格式:输入一个字符串s #输出格式:输出 ...
- python 元组和列表区别_Python 基础(六):列表与元组
1 列表 1.1 简介 Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同:列表是序列结构,可以进行序列结构的基本操作:索引 ...
- python取list的个别元素_python 获取list特定元素下标的实例讲解
python 获取list特定元素下标的实例讲解 在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等.怎么办?看下面 方法一:利用数组自身的特性 ...
- python查看列表有多少元素_python 统计列表中元素的数量
一.统计列表中不同元素的个数 这个需求是统计列表中不同元素有几个,由于列表是允许存在重复元素的,但是集合却不允许存在重复元素,所以可以将list转换为set,然后求长度. list=[1,2,1,2, ...
- python输出图形效果的代码_python打印图形大全(详解)
原博文 2019-04-13 23:48 − 1)for i in range(0,10): shixin=chr(9679) print(shixin) -------------------结果: ...
- python集合增加元素_python集合的新增元素方法整理
我们可以把全体人数当作一个集合,想要往其中加入新人有不同的增加方式.可以一周增加一次,也可以集中到月底一起加入集体.我们今天所要讲的在python集合中,添加元素的两种方法就可以这样理解.一个是整体加 ...
- python输出hello的字符串字数_python 字符串
一.基本概述 在python中没有单独的字符类型,也即一个单独的字符在python中也是字符串类型.python中一般使用单引号或双引号表示字符串.当然也可使用三单引号和三双引号表示多行字符串. 二. ...
- python字典怎么增加元素_Python字典(dict)增加元素
Python字典(dict)增加元素 在 如果 key 不存在,那么会将 key 添加进字典,并将该 key 的值设置为 value. 字典增加元素详解 语法 dict[key] = value 参数 ...
最新文章
- 40个常用的网站制作技巧
- java 爬虫 异步_Java 爬虫遇上数据异步加载,试试这两种办法!
- ​10.24,华为鲲鹏要为程序员发福利!
- JAVA Thread线程异常监控
- Kettle使用_24 Kettle输入输出组件汇总
- java用scanner 和random的一个小案例
- 数据结构和算法———P2 算法概述
- 《菜菜的机器学习sklearn课堂》sklearn入门与决策树
- 三国佚事--巴蜀危机
- 【软件下载】Axure10正式版(含汉化包)
- java学生签到系统代码_java学生考勤签到代码【相关词_ 学生考勤系统java代码】...
- 2017大一计算机教程,2017年计算机等考一级章节考点:WPS2000新手入门教程
- kaggle代码补全
- HBuilder配置Mumu模拟器
- R语言中dim函数_R语言入门:函数介绍(3)—— %gt;%
- 根据文件后缀名显示对应类型缩略图
- 多御安全浏览安卓版升级尝鲜,新增下载管理功能
- 基于深度学习的花卉检测与识别系统(YOLOv5清新界面版,Python代码)
- 【引语练习题】Ask questions politely
- ET篇:ETBook笔记(1.2 为什么使用C# .net core做服务端?)
热门文章
- 文献阅读005【精读】
- Linux-磁盘及网络IO工作方式解析
- oracle补零 (转)
- netstat查询端口被占用
- 接口做的好怎么形容_匠品美缝知识之接口美缝如何做?
- php教程 二叉树,PHP ClassObject -- PHP 自排序二叉树的深入解析
- mfc远程连接mysql数据库连接_MFC连接mysql数据库(十分钟搞定)
- 支撑200并发_搞清楚系统到底怎样支撑高并发以及架构图的绘制(面试向)
- new string(abc)创建了几个对象_面试题系列第2篇:new String()创建几个对象?有你不知道的...
- apache php mysql环境搭建_Ubuntu+Apache+PHP+Mysql环境搭建(完整版)