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 参数 ...
最新文章
- 05用线程类Thread开启线程
- Chromium:编译,运行
- 01.C++(一)----面向对象的思想
- ssh首次连接时提示yes/no
- G - 变形课 HDU - 1181(搜索之dfs)
- u盘 linux centos 5.3,鸟哥linux私房菜学习笔记,U盘安装centos5.3不能正常进入图形界面的问题...
- 《R语言预测实战》PDF,数据及代码
- c#命名规范(转载)
- apache服务器(修改主页文件、两个不同ip访问不同站点、统一ip不同端口访问不同站点)
- 计算机基础知识教程excel单元格拆分,电脑内怎么将excel表格中某个单元格的内容拆分至不同单元格里...
- canvas将彩色图片变为灰度图片理解问题
- 硬件设计22之高速电路设计保险丝的选型
- 简单枚举 / 枚举排列
- 在MAC环境下玩转树莓派
- DAMO-YOLO第三方数据训练教程
- 11广义表的基本概念和性质
- git push提示dst refspec XXX matches more than one
- 地下交通站之贾贵经典语录
- 守护网络安全 呵护精神家园 --常见网络风险(二)
- Nets Wire has multiple names
热门文章
- 自然语言处理的几个困难
- 详解摄像头各个引脚的作用关系
- 几个常见翻译引擎的不完全对比
- 继承redis spring_Spring 极速集成注解 Redis 实践
- python虚拟环境中安装diango_创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...
- python同步两张数据表_python 同步mysql数据库表
- 2021湖南l高考成绩查询入口,湘潭2021高考成绩查询入口
- python有趣的案例_Python有趣的小案例
- android dialogfragment style,Android DialogFragment 使用
- os2计算机网络,计算机网络 第二章 物理层