计算元组列表中的重复项

2023-12-12

我有一个元组列表:a = [(1,2),(1,4),(1,2),(6,7),(2,9)]我想检查每个元组的单个元素之一是否与另一个元组中的相同位置/元素匹配,以及这种情况发生了多少次。

例如:如果某些元组中只有第一个元素有重复,则返回该元组以及它重复的次数。 我可以使用以下代码来做到这一点:

a = [(1,2), (1,4), (1,2), (6,7), (2,9)]

coll_list = []
for t in a:
    coll_cnt = 0
    for b in a:
        if b[0] == t[0]:
            coll_cnt = coll_cnt + 1
    print "%s,%d" %(t,coll_cnt)
    coll_list.append((t,coll_cnt))

print coll_list

我想知道是否有更有效的方法来做到这一点?


您可以使用Counter

from collections import Counter
a = [(1,2),(1,4),(1,2),(6,7),(2,9)]
counter=Counter(a)
print counter

这将输出:

Counter({(1, 2): 2, (6, 7): 1, (2, 9): 1, (1, 4): 1})

它是一个类似字典的对象,其中项目(在本例中为元组)作为键,值包含该键被看到的次数。你的(1,2)元组被看到两次,而所有其他元组只被看到一次。

>>> counter[(1,2)]
2

如果您对元组的每个单独部分感兴趣,则可以对元组中的每个元素使用相同的逻辑。

first_element = Counter([x for (x,y) in a])
second_element = Counter([y for (x,y) in a])

first_element and second_element现在包含一个Counter看到值的次数每个元素在元组中

>>> first_element
Counter({1: 3, 2: 1, 6: 1})
>>> second_element
Counter({2: 2, 9: 1, 4: 1, 7: 1})

同样,这些是类似字典的对象,因此您可以直接检查特定值出现的频率:

>>> first_element[2]
1

在元组列表的第一个元素中,值2出现1次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算元组列表中的重复项 的相关文章

随机推荐

  • 如何使用 NativeActivity 写入内部存储文件系统?

    我正在将纯 C 游戏移植到 Android 由于我的目标是 Android 3 0 平板电脑 因此我选择使用 NativeActivity 以完全避免使用 Java 但是 我看不到任何允许我写入设备内部存储的功能 对 fopen 的调用将失
  • JAXB 列出根元素中的名称空间(-> 每个元素)

    默认情况下 jaxb 2 在编组期间列出根元素中的所有 所有可能需要的 命名空间 有没有办法在每个元素而不是根元素中描述名称空间 它还解决了 不必要的名称空间 的问题 这对我来说也很重要 任何建议表示赞赏 None
  • 如何通过PHP抓取需要POST数据的网站?

    我正在尝试抓取一个接受 POST 数据的网站以返回正确的页面 无 POST 则返回 15 个结果 有 POST 数据则返回所有结果 目前我的代码如下所示 curl curl init curl setopt curl CURLOPT URL
  • java.lang.IllegalStateException:无法在父级或祖先上下文中找到 android:onClick 属性的方法

    我正在尝试添加 onClick 方法front 到我的按钮 但是 当我单击按钮时 它返回此错误 java lang IllegalStateException Could not find method front View in a pa
  • 如何将应用程序片段设置为仅纵向模式?

    我有一个 Android 应用程序 它有一个主要活动和 3 个选项卡片段 我希望应用程序始终保持纵向模式 但我似乎无法正常工作 这是我尝试过的 根据另一篇堆栈溢出帖子 但我不确定我做错了什么 如果使用片段 它是否需要有所不同
  • IntelliJ IDEA:如何将项目库与pom.xml中的依赖项同步?

    当我更改项目 具有多个模块 的 pom xml 之一中的依赖项版本时 我会在项目结构的 库 部分中看到新版本和旧版本 例如 最近我将Drools从5 4版本更改为5 5版本 当我进入 库 部分时 我看到了这两个库 因此我手动删除了 5 4
  • SSL 操作失败,代码 1:dh 密钥太小

    我正在通过 SSL 连接到我的数据库 Google Cloud SQL 我使用 codeigniter 3 0 来执行此操作 尽管 mysqli 驱动程序进行了一些修改以允许此功能 几个月来一直运作良好 然而它just开始返回此警告 Mes
  • 无法从“浮动”转换?浮

    我有这个代码 public float InputCutOffFrequency get set fc public float InputF1 get set public float InputF2 get set public flo
  • 将 Google 地图 v2 转换为 google 地图 v3

    我的网站当前正在运行 Google 地图 API v2 我想转换为新的 Google 地图 API v3 下面的代码需要做哪些修改 最近收到一条消息 说v2被禁用了 所以我需要用当前功能修改现有脚本
  • EnumDataTypeAttribute 应该在使用实体框架的 .NET 4.0 中正常工作吗?

    我有一个枚举 我想将其作为某种值保留到底层数据库中 以便我可以来回调用它 我读过一些文章 建议创建一个枚举包装器 其中定义了静态隐式运算符 并使用 ComplexType 对象映射进行映射 如下面的链接所述 如何在 EF4 中伪造枚举 这个
  • 让 AppleScript 填写表单

    我遇到的问题让我生病了 我正在研究一个苹果脚本 它会引发填写表单的操作 我认为我在等待网站 100 加载时遇到了问题 该脚本激活站点但不填写表单 请引导我并帮助制定这个懒惰的脚本 tell application Safari set lo
  • 如何控制 python 解释器中的数字格式?

    我经常使用 python 解释器进行快速数值计算 并希望使用指数表示法等自动打印所有数值结果 有没有办法为整个会话设置这个 例如 我想要 gt gt gt 1 e12 1 0e 12 not gt gt gt 1 e12 100000000
  • PDO:使用准备好的语句选择返回列名

    我正在尝试使用已准备好列的准备好的语句 i e SELECT FROM users 现在如果我把这通常可以工作 SELECT id FROM users 但是执行第一个语句时 值是列名 id id 0 0 我做错了什么 或者这可能吗 不 您
  • 将 int 分成低位整数

    我有一个 30 60 范围内的随机整数 我使用它randint 30 60 假设它是 40 我想将这个数字拆分为 7 个随机整数 例如 5 5 5 5 5 5 10 是一个有效的结果 但有很多可能的解决方案 就像这个一样 6 6 6 6 6
  • nginx 入口控制器忽略 css 和 js 文件 - google kuberenetes 引擎

    我创建了一个链接到两个服务的 nginx 入口控制器 网站工作正常 但 js 和 css 文件未加载到 HTML 页面 404 错误中 我使用 helm 创建了 nginx pod 并将 nginx 配置包含在 ingress yaml 中
  • 运行Android项目时出现“无法找到com_facebook_android.apk错误”

    我已经在 Eclipse 中安装了适用于 Android 的 Facebook API 并将该项目导入到我的 Android 项目中 我的程序构建得非常好 但是当我尝试运行它时 我得到了 找不到 com facebook android a
  • ASP.NET AJAX 和保持会话活动 - 标准方法是什么?

    长期 ASP NET Webforms 开发人员 Ajax 开发新手 主要通过 UpdatePanel 控件 由于没有发生回发 即使用户正在与页面交互并刷新页面的一部分 服务器也不会重置用户的会话超时计数器 我想知道当使用 UpdatePa
  • Eclipse 升级杀死了 PyDev

    我刚刚在 Ubuntu 上升级了 Eclipse 版本 现在每当我打开 Python 文件时 它都会在外部窗口中打开 并且我在 Eclipse 中打开的现有 Python 文件显示 无法打开编辑器 没有 id org json 的编辑器描述
  • 字段modifyDate永远不会被分配,并且始终具有默认值0

    有人可以向我解释一下为什么我会收到此警告吗 我已经测试了代码并且它有效 我得到了我应该在那里获得的值 这是错误的警告还是我遗漏了什么 DataMember Name modifyDate private long modifyDate pu
  • 计算元组列表中的重复项

    我有一个元组列表 a 1 2 1 4 1 2 6 7 2 9 我想检查每个元组的单个元素之一是否与另一个元组中的相同位置 元素匹配 以及这种情况发生了多少次 例如 如果某些元组中只有第一个元素有重复 则返回该元组以及它重复的次数 我可以使用