Scala:如何按元组的第一个元素合并列表

2024-01-07

假设我有一个清单:

[(A, a), (A, b), (A, c), (B, a), (B, d)]  

我如何将该列表变成:

[(A, [a,b,c]), (B, [a,d])]  

具有单一功能?

Thanks


The groupBy http://www.scala-lang.org/api/2.12.x/scala/collection/Seq.html#groupBy%5BK%5D(f:A=%3EK):scala.collection.immutable.Map%5BK,Repr%5D函数可以让你实现这一点:

scala> val list = List((1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'd'))
list: List[(Int, Char)] = List((1,a), (1,b), (1,c), (2,a), (2,d))

scala> list.groupBy(_._1) // grouping by the first item in the tuple

res0: scala.collection.immutable.Map[Int,List[(Int, Char)]] = Map(2 -> List((2,a), (2,d)), 1 -> List((1,a), (1,b), (1,c)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala:如何按元组的第一个元素合并列表 的相关文章

随机推荐

  • 在 OS X 上编译 dlib

    我尝试在 OS X 上的 Qt 项目中使用 dlib 因此 在这次尝试中我做了以下操作 在 dlib 根目录中 cd examples mkdir build cd build cmake cmake build config Releas
  • 杰克逊 - 需要财产吗?

    我在对象映射器上使用 Jackson 的 readValue 方法来读取 JSON 文件并将其转换为我的 java 对象 eg mapperObject readValue node MyTargetClass class 我可以在 MyT
  • 如何隐藏每组的最后一行?

    使用VB 6和Crystal Report 8 5 如何隐藏每组的最后一行 我需要使用 Crystal Report 公式吗 我不想显示每个组的最后一行 这个公式该怎么写 应该写在哪里 您可以为要作为分组依据的字段创建一个组 然后在部分专家
  • 单元测试文件 I/O

    通读 Stack Overflow 上现有的单元测试相关线程 我找不到关于如何对文件 I O 操作进行单元测试的明确答案 我最近才开始研究单元测试 之前已经意识到单元测试的优点 但很难习惯先编写测试 我已经将我的项目设置为使用 NUnit
  • 插入项目或将它们添加到排序列表后对列表进行排序是否更快

    如果我有一个排序列表 比如快速排序来排序 如果我有很多值要添加 那么最好暂停排序 并将它们添加到末尾 然后排序 或者使用二进制排正确地放置项目 同时添加它们 如果项目是随机的 或者已经或多或少按顺序排列 会有什么不同吗 如果您添加了足够的项
  • Python串口监听器

    我已经开始使用 PySerial 编写一些代码来向串行设备发送和接收数据 到目前为止 我只致力于从终端启动事务并接收来自串行设备的响应 pseudo main loop message get message send to serial
  • 如何使用 psql 命令行界面显示表中的数据?

    有没有办法使用 psql 命令行界面显示表中的所有内容 我可以用 list显示所有数据库 d显示所有表格 但是如何显示表格中的所有数据呢 较新版本 从 8 4 发行说明中提到 https www postgresql org docs re
  • android proguard,跳过jar

    我想知道是否可以跳过 proguard 中的 jar 以便它不会混淆它们 我正在尝试使用以下命令来做到这一点 libraryjars myjar jar 但我的代码一直存在问题 我正在尝试导出一个具有适用于 Android 的 javama
  • 有番石榴概述吗?

    Guava 库很强大 但我不确定这个库的所有可能性是什么 我发现了一些有趣的教程 例如http scaramoche blogspot com search label guava http scaramoche blogspot com
  • 如何修复响应式数据表的最后一列

    我有一个数据表 最后一列是两个按钮 我正在实现响应式数据表 但我需要最后一列 列 Opciones 不隐藏 并且始终显示 无论其他列如何 如果您需要更多信息 请告诉我 HTML ASP NET 视图 model PagedList IPag
  • Azure DevOps - 自定义构建任务可见性

    我正在学习 Azure DevOps 我有兴趣创建一个自定义构建任务 https learn microsoft com en us azure devops extend develop add build task view vsts
  • 计算两个字符串之间的差异

    我试图计算两个导入的字符串 seq1 和 seq2 导入代码未列出 之间的差异数量 但在运行程序时没有得到任何结果 我希望输出显示为 2 个差异 之类的内容 不知道我哪里错了 def difference seq1 seq2 count 0
  • 计算另一个模型 Django 的点赞数

    实现一个用户可以喜欢宠物的相似模型 如果用户按下like isLike将为true 而like则为true isLike为false 模型 class pet models Model name models CharField max l
  • 如何将 printf 的输出存储在变量中并格式化? [复制]

    这个问题在这里已经有答案了 我想存储的输出printf在变量中进行格式化 但由于某种原因它删除了格式化 这是正确的输出 printf 40s 8s 9s 7s File system Free Refquota Free File syst
  • 如何使用 jQuery 动态地从具有相同名称的多个输入、输入字段中获取值?

    我想通过单击按钮动态添加金额 数量 小计字段作为发票项目 但问题是当我想获得的价值quantity and amount每次计算输入字段值时 由于 id 名称相同 我无法使用 jquery 获取该值 如何获取动态字段值来计算小计 这是代码
  • Zoomooz ZoomContainer 移开

    我正在尝试使用 Zoomooz jquery mouse wheel 和 jquery kinetic js 在表单设计器中实现自由拖动 滚动功能的缩放 这是该功能的演示 http jsfiddle net mVf8Z http jsfid
  • 将输入流转换为文件输入流

    我读过这篇文章如何将InputStream转换为FileInputStream https stackoverflow com questions 2353057 how to convert inputstream to fileinpu
  • 从 Google 趋势下载 .csv 文件

    我希望从我通过代码创建的网址下载 Google 趋势数据 这些 URL 当放入浏览器 我使用 Firefox 时会显示一个保存提示 我可以在浏览浏览器时选择打开或保存文件 但是 我希望通过代码获得包含 Google 趋势数据的同一个 csv
  • Python IDLE 相当于 R 中的 CTRL-R

    如果您在 Windows 版本的 R 中打开了一个脚本 则可以通过按 CTRL R 相信在苹果版本中是 command enter 在 shell 中运行一行 或突出显示的代码部分 IDLE 有类似的功能吗 非常感谢 No 在IDLE的快捷
  • Scala:如何按元组的第一个元素合并列表

    假设我有一个清单 A a A b A c B a B d 我如何将该列表变成 A a b c B a d 具有单一功能 Thanks The groupBy http www scala lang org api 2 12 x scala