将列表中连续出现的相同重复项目分组

2023-12-19

例如,我们有一个这样的列表:

L = ["item1", "item2", "item3", "item3", "item3", "item1", "item2", "item4", "item4", "item4"]

我想将它们打包到以下形式的元组列表中:

[("item1", 1), ("item2", 1), ("item3", 3),... ("item1", 1)]

我已经开发了一种算法,可以执行类似的操作,以获得:

{item1: 2, item2: 2, ...}

(它找到所有出现的情况并对它们进行计数,即使它们不是邻居......)

但是,我希望它仅对具有相同内容的项目进行分组and是邻居(即连续出现),我怎样才能做到这一点?

并不是我不知道该怎么做,而是我倾向于编写很长的代码,并且在这种情况下我想要一个优雅且简单的解决方案。


这也是使用itertools.groupby http://docs.python.org/2/library/itertools.html#itertools.groupby(生成器版本):

from itertools import groupby
counts = ((k, sum(1 for _ in g)) for k, g in groupby(l))
>>> list(counts)
[('item1', 1),
 ('item2', 1),
 ('item3', 3),
 ('item1', 1),
 ('item2', 1),
 ('item4', 3)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将列表中连续出现的相同重复项目分组 的相关文章

随机推荐

  • 在 WordPress 帖子中格式化 Java 代码,就像在 Eclipse 中一样

    我即将写一些包含一些 Java 代码的帖子 我想通过为 Java 关键字着色来正确格式化它 像Eclipse http en wikipedia org wiki Eclipse 28software 29 我正在寻找一些可供使用的主题 插
  • 在 Android Studio 中生成 Google App Engine 后端时需要 Maven

    Android开发者 所以我试图将 Google App Engine 后端添加到我的应用程序中 我使用的是 Android Studio 0 3 0 当我尝试 生成 App Engine 后端 时 出现以下错误 找不到有效的 maven
  • 将手表套件应用程序部署到设备时出现“Apple Watch 应用程序的安装从未完成”错误

    所以我得到了我的新手表 耶 我手动将其 UDID 添加到开发人员门户并刷新配置文件 并且我能够将存档推送到 ITC 进行测试 但现在我想在我的手表本身上以调试方式运行该应用程序 我尝试将手表套件应用程序目标设置为我的手机作为设备部署 它就在
  • 从 Angular NGXS 中的不同组件搜索数据

    我试图弄清楚如何从不同的组件中搜索 NGXS 当我从应用程序组件 这是一个不同的组件 显示我的数据时 我有来自导航栏组件的搜索栏 请参阅此 stackblitz 链接点击这里 https stackblitz com edit ngxs s
  • .NET Core 2 - 带有实例名称和端口号的连接字符串

    在我的应用程序中 我的配置中有一个连接字符串 该应用程序使用 NET core 2 11 和 SQL Server 创建 这是连接字符串 Data Source servername instancename portnumber Init
  • 制作一个seaborn线图,为每个点指定标准差/置信区间

    我正在尝试制作一个具有平滑的置信区间的线图 看起来像这样的东西 source pydata org https seaborn pydata org images seaborn lineplot 1 png 目前 我所做的是使用误差线来显
  • aspnet5 vNext (rc1) iis 8 - 错误网关 502.3

    我意识到存在这样的帖子 我已经阅读 重新阅读但仍然遇到问题 大多数都是旧的或不直接相关的 所以我想我应该重新发布当前的示例 尝试在 Windows Server 2012 R2 上的 IIS 8 5 中运行基本站点 此时我陷入了 502 3
  • 垂直分屏自定义形状

    I want to make a vertical split screen with a custom shape like in my attached image But it must be cross browser suppor
  • JavaScriptSerializer 将对象“集合”反序列化为对象失败的属性

    我有一个 js 对象 结构如下 object property1 some string object property2 some string object property3 property1 some string object
  • 复制整个目录但排除一些文件 php

    试图找到一种复制整个目录但排除某些文件的方法 在这种情况下只需要排除一个始终只包含 1 个 png 文件的目录 我想可以使用类似于此代码的内容 但绝对没有任何线索如何仅排除一个文件 function xcopy source dest pe
  • 堆地址范围内全局变量的地址

    我正在调试MPlayer 1 3 0源代码 我看到一个全局变量 其地址 由GDB甚至简单的打印 都在堆分配的范围内 而不是数据部分 我使用检查了堆范围procfs 555555554000 555555834000 r xp 0000000
  • Firefox VIEW SOURCE 显示登录页面

    我在 Arch Linux 上运行 Firefox 61 0 查看页面源代码时 当我浏览需要登录的网站时 我经常 但并非总是如此 估计有 20 的时间 会看到登录页面的源代码 当我浏览本地主机 每个页面的源代码都是在服务器上生成的 这不是操
  • 你能在 Python 中的核心类型上猴子修补方法吗?

    Ruby 可以向 Number 类和其他核心类型添加方法以获得如下效果 1 should equal 1 但Python似乎无法做到这一点 这是真的 如果是这样 为什么 这是否与以下事实有关 type不能修改吗 我不想讨论猴子修补的不同定义
  • 如何在 obj-c 中打印格式化的浮点数?

    如何打印float在 Objective C 中 例如 3 45代替3 45555555555 尝试像这样格式化浮动 NSLog 2f myFloat The 符号表示这将被下面的相应参数替换 myFloat The 2表示小数点后 2 位
  • 是否可以在 Artifactory 中重命名存储库?

    我们想引入一种命名约定 因为我们有大量的内部和外部存储库 因此我们希望让人们清楚什么是什么 添加这些存储库时 没有人预计事情会增长这么多 我想知道是否可以重命名存储库 我知道我可以创建新的并复制 移动其中的工件 但这看起来比我想要的要付出更
  • Automake:构建不被安装的共享模块

    如何告诉Automake构建一个不被安装的动态模块 pkglib LTLIBRARIES mywrapper la mywrapper la LDFLAGS no undefined module avoid version 导致 mywr
  • 如何在 C# 中保存随机生成器的状态? [复制]

    这个问题在这里已经有答案了 出于测试目的 我使用给定的种子创建随机数 即不基于当前时间 因此整个程序是确定性的 如果发生什么事情 我希望能够快速恢复到事件发生 不久之前 的点 因此我需要能够恢复System Random到之前的状态 有没有
  • Babel 对 Object.entries 的支持

    我正在看Object values Object entries 的第 3 阶段提案 https github com tc39 proposal object values entries我真的很想在我当前的 JavaScript 项目中
  • 过桥拼图

    晚上必须有四个人过桥 任何人过桥 无论是一个人还是两个人 都必须随身携带手电筒 必须用手电筒来回走动 每个人行走的速度不同 一个需要 1 分钟 另一个需要 2 分钟 另一个需要 5 分钟 最后 10 分钟 如果两个人一起穿过 他们必须以较慢
  • 将列表中连续出现的相同重复项目分组

    例如 我们有一个这样的列表 L item1 item2 item3 item3 item3 item1 item2 item4 item4 item4 我想将它们打包到以下形式的元组列表中 item1 1 item2 1 item3 3 i