我试图找到嵌套在列表中的元组内的重复项.整个建筑也是一个清单.如果有其他更好的方法来组织这个让我的问题得到解决 – 我很高兴知道,因为这是我在路上建立的东西.

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 – 在带有元组的列表列表中查找重复项相关推荐

  1. Sublime中查找重复行的正则表达式

    Sublime中查找重复行的正则表达式 先按F9对所有内容排序: 然后Ctrl+F 调出查找面板: 将下面的正则表达式放进去,并选择正则表达式选项 正则表达式:^(.+)$[\r\n](^\1$[\r ...

  2. excel如何晒出重复数据_3秒找出Excel中的重复数据,年底数据统计用得上,赶紧码住...

    职场人经常会碰到数据核对的任务,特别是在月底和年末,老板索要数据统计结果时,你总得检查一遍再交上去吧. 如果你对 Excel 中的基本功能不熟悉,就很可能碰到和这位妹子一样的难题: 遇到上面这种情况该 ...

  3. Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)

    609. 在系统中查找重复文件 给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径.一组重复的文件至少包括二个具有完全相同内容的文件. 输 ...

  4. mysql 找表重复数据,mysql 数据表中查找重复记录

    mysql 数据表中查找重复记录 复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name ha ...

  5. C#LINQ在列表中查找重复项

    本文翻译自:C# LINQ find duplicates in List 使用LINQ,如何从List<int>检索包含重复项不止一次及其值的列表? #1楼 参考:https://sta ...

  6. 在excel中如何筛选重复数据_Excel表格技巧—如何在 Excel 中查找重复值

    今天和大家一起分享一下excel表格中如何快速查找重复值,在办公中很经常需要它. 先打开一张需要查找重复数据或重复值的EXCLE表格,如图我们以B2做为查找列: 点击工具菜单栏的"开始&qu ...

  7. oracle countif函数,字符串截取substr、excel表中查找重复数据countif

    1.字符串截取substr =left(a1,2)意思是取A1左面就是前面开始去2个字符 =right(a1,3)及时A1右面 就是走后面开始取3个字符 要是中间取 =mid(a1,2,4) 就是走A ...

  8. python的内置字典数据类型_python 数据类型元组与字典内置方法

    1.元组 (1)元组是不可变的列表,能存多个值:如果多个值只有取得需求,没有改的需求,用元组最合理 (2)定义:在()内用逗号隔开,可以存任意类型的值 注意:当元组只有一个元素时,要在后面加逗号 # ...

  9. python随机数不重复_Python产生一个数值范围内的不重复的随机数的实现方法

    Python产生一个数值范围内的不重复的随机数的实现方法 Python产生一个数值范围内的不重复的随机数,可以使用random模块中的random.sample函数,其用法如下: import ran ...

最新文章

  1. mysql中union all的order by问题
  2. 谁说程序员干到 35 岁就不行了?
  3. HDFS报错解决:Operation category JOURNAL is not supported in state standby
  4. numpy中求解范数(numpy.linalg.norm)以及各阶范数详解
  5. 计算机软考程序员试题,最全历年程序员软考考试上午真题合集(附答案).doc...
  6. 提高工作效率的黑科技软件(二)
  7. 无线网络技术导论笔记(第五讲)
  8. Java找不到对象的警告_程序猿的24个段子:程序员找不到对象 一般有三种情况...
  9. 给大家爆个秘密:怎样迅速提高你的校内人人网人气
  10. mysql_dc.ncf_my live PC / ThinkCentre M920x Tiny / ThinkStation P330 Tiny
  11. Java打造RPC框架(二):11个类实现简单Java RPC
  12. 算法——从9个硬币中找出其中的1枚假硬币
  13. [转] 管理学中的各种理论
  14. linux ftdi 虚拟,linux ftdi 驱动
  15. sprintf_s() 、sprintf()和printf()区别和用法
  16. 【Kubernetes 系列】一文带你吃透 K8S 应用pod结点
  17. 计算机音乐创作是什么,计算机音乐创作,creation of computer music,音标,读音,翻译,英文例句,英语词典...
  18. 建立二叉树:已知层次遍历顺序建立二叉树、已知先序遍历顺序建立二叉树
  19. VS2017系统找不到指定的文件
  20. 计算机窗口的大小是什么单位,电脑软件窗口大小调整

热门文章

  1. sqrt( )平方根计算函数
  2. Web应用防火墙是什么?有哪些功能?
  3. 基于安卓的健康体检预约系统APP
  4. Flask模板中可以直接访问的特殊变量和方法
  5. 包姓女孩清秀文雅的名字
  6. iOS 如何获取手机型号、系统版本、电池电量
  7. JavaScript两个实用的图片懒加载优化方法
  8. maven引用公共包_maven项目引用外部jar包的方法
  9. oracle中栓锁,oracle 闩锁介绍
  10. EffectiveC++-读后感