python的元组是否能重复_python – 在带有元组的列表列表中查找重复项
我试图找到嵌套在列表中的元组内的重复项.整个建筑也是一个清单.如果有其他更好的方法来组织这个让我的问题得到解决 – 我很高兴知道,因为这是我在路上建立的东西.
pairsList = [
[1, (11, 12), (13, 14)], #list1
[2, (21, 22), (23, 24)], #list2
[3, (31, 32), (13, 14)], #list3
[4, (43, 44), (21, 22)], #list4
]
每个列表中的第一个元素唯一标识每个列表.
从这个对象pairList,我想找出哪些列表具有相同的元组.所以我想报告list1与list3具有相同的元组(因为它们都有(13,14).同样,list2和list4具有相同的元组(都有(21,22))并且需要报告.列表中的元组无关紧要(list2和list4都有(13,14),即使元组中列表中的位置不同).
输出结果可以是稍后可迭代的任何内容,例如(1,3),(2,4)或[1,3],[2,4].这是我感兴趣的对.
我知道集合,并在其他情况下使用它们删除列表中的重复项,但无法理解如何解决此问题.如果一个列表包含其他列表中的任何元素,我可以像这样检查:
list1 = [1, (11, 12), (13, 14)]
list2 = [3, (31, 32), (13, 14)]
print not set(list1).isdisjoint(list2)
>>>True
因此,下面的代码让我知道哪些列表与第一个列表具有相同的元组.但是在所有列表上执行此操作的正确方法是什么?
counter = 0
for pair in pairsList:
list0 = pairsList[0]
iterList = pairsList[counter]
if not set(list0).isdisjoint(iterList):
print iterList[0] #print list ID
counter += 1
最佳答案 每个列表中的第一个元素唯一标识每个列表.
好的,然后让我们先把它转换为dict:
d = {x[0]: x[1:] for x in pairsList}
# d:
{1: [(11, 12), (13, 14)],
2: [(21, 22), (23, 24)],
3: [(31, 32), (13, 14)],
4: [(43, 44), (21, 22)]}
让我们索引整个数据结构:
index = {}
for k, vv in d.iteritems():
for v in vv:
index.setdefault(v, []).append(k)
现在索引是:
{(11, 12): [1],
(13, 14): [1, 3],
(21, 22): [2, 4],
(23, 24): [2],
(31, 32): [3],
(43, 44): [4]}
输出结果可以是稍后可迭代的任何内容,例如(1,3),(2,4)或[1,3],[2,4].这是我感兴趣的对.
pairs = [v for v in index.itervalues() if len(v) == 2]
返回[[1,3],[2,4]].
python的元组是否能重复_python – 在带有元组的列表列表中查找重复项相关推荐
- Sublime中查找重复行的正则表达式
Sublime中查找重复行的正则表达式 先按F9对所有内容排序: 然后Ctrl+F 调出查找面板: 将下面的正则表达式放进去,并选择正则表达式选项 正则表达式:^(.+)$[\r\n](^\1$[\r ...
- excel如何晒出重复数据_3秒找出Excel中的重复数据,年底数据统计用得上,赶紧码住...
职场人经常会碰到数据核对的任务,特别是在月底和年末,老板索要数据统计结果时,你总得检查一遍再交上去吧. 如果你对 Excel 中的基本功能不熟悉,就很可能碰到和这位妹子一样的难题: 遇到上面这种情况该 ...
- Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)
609. 在系统中查找重复文件 给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径.一组重复的文件至少包括二个具有完全相同内容的文件. 输 ...
- mysql 找表重复数据,mysql 数据表中查找重复记录
mysql 数据表中查找重复记录 复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name ha ...
- C#LINQ在列表中查找重复项
本文翻译自:C# LINQ find duplicates in List 使用LINQ,如何从List<int>检索包含重复项不止一次及其值的列表? #1楼 参考:https://sta ...
- 在excel中如何筛选重复数据_Excel表格技巧—如何在 Excel 中查找重复值
今天和大家一起分享一下excel表格中如何快速查找重复值,在办公中很经常需要它. 先打开一张需要查找重复数据或重复值的EXCLE表格,如图我们以B2做为查找列: 点击工具菜单栏的"开始&qu ...
- oracle countif函数,字符串截取substr、excel表中查找重复数据countif
1.字符串截取substr =left(a1,2)意思是取A1左面就是前面开始去2个字符 =right(a1,3)及时A1右面 就是走后面开始取3个字符 要是中间取 =mid(a1,2,4) 就是走A ...
- python的内置字典数据类型_python 数据类型元组与字典内置方法
1.元组 (1)元组是不可变的列表,能存多个值:如果多个值只有取得需求,没有改的需求,用元组最合理 (2)定义:在()内用逗号隔开,可以存任意类型的值 注意:当元组只有一个元素时,要在后面加逗号 # ...
- python随机数不重复_Python产生一个数值范围内的不重复的随机数的实现方法
Python产生一个数值范围内的不重复的随机数的实现方法 Python产生一个数值范围内的不重复的随机数,可以使用random模块中的random.sample函数,其用法如下: import ran ...
最新文章
- mysql中union all的order by问题
- 谁说程序员干到 35 岁就不行了?
- HDFS报错解决:Operation category JOURNAL is not supported in state standby
- numpy中求解范数(numpy.linalg.norm)以及各阶范数详解
- 计算机软考程序员试题,最全历年程序员软考考试上午真题合集(附答案).doc...
- 提高工作效率的黑科技软件(二)
- 无线网络技术导论笔记(第五讲)
- Java找不到对象的警告_程序猿的24个段子:程序员找不到对象 一般有三种情况...
- 给大家爆个秘密:怎样迅速提高你的校内人人网人气
- mysql_dc.ncf_my live PC / ThinkCentre M920x Tiny / ThinkStation P330 Tiny
- Java打造RPC框架(二):11个类实现简单Java RPC
- 算法——从9个硬币中找出其中的1枚假硬币
- [转] 管理学中的各种理论
- linux ftdi 虚拟,linux ftdi 驱动
- sprintf_s() 、sprintf()和printf()区别和用法
- 【Kubernetes 系列】一文带你吃透 K8S 应用pod结点
- 计算机音乐创作是什么,计算机音乐创作,creation of computer music,音标,读音,翻译,英文例句,英语词典...
- 建立二叉树:已知层次遍历顺序建立二叉树、已知先序遍历顺序建立二叉树
- VS2017系统找不到指定的文件
- 计算机窗口的大小是什么单位,电脑软件窗口大小调整