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:如何按元组的第一个元素合并列表 的相关文章

  • Scala中如何将DataFrame转换为RDD?

    有人可以分享一下如何转换dataframe to an RDD Simply val rows RDD Row df rdd
  • Scala 2.10、Double.isNaN 和拳击

    在 Scala 2 10 中 是someDouble isNaN预计装箱 运行我的代码调用 isNaN通过反编译器 我仍然看到对double2Double在我的代码中 鉴于新的AnyVal在 2 10 中工作 我希望它不会比java lan
  • Scala 中使用转义特殊字符解码字符串问题

    我有一个多行 JSON 文件 其中包含编码为十六进制的特殊字符的记录 以下是单个 JSON 记录的示例 x22value x22 x22 xC4 xB1arines Bint xC4 xB1 xC3 xA7 Ramu xC3 xA7lar
  • 如何在 Akka Stream 中记录流量?

    我有一个带有单个流 图的 Akka Stream 应用程序 我想测量源头的流量并每 5 秒记录一次 例如 在过去 5 秒内收到 3 条消息 我尝试过 someOtherFlow groupedWithin Integer MAX VALUE
  • 将无形状 HList 转换为 TupleN,其中元组形状不需要与 HList 形状完全匹配

    我想创建相当于 def toTupleN A1 AN L lt HList l L TupleN A1 AN 代码使用toTupleN仅当恰好有一个时才应该编译N中的值的组合l可以从中创建元组 其他任何内容都应该生成编译时错误 应考虑可用的
  • scala.collection.breakOut 与视图

    这个答案 https stackoverflow com a 1716558 936869描述如何scala collection breakOut可用于防止创建浪费的中间集合 例如 这里我们创建一个中间体Seq String String
  • Spark:用列的平均值替换数据框中的空值

    如何创建 UDF 以编程方式将每列中 Spark 数据框中的空值替换为列平均值 例如 在示例中 数据 col1 空值的值为 2 4 6 8 5 5 5 示例数据 col1 col2 col3 2 null 3 4 3 3 6 5 null
  • 如何检查字符串中是否包含某个字符?

    我想检查字符串是否包含该字符 我正在编写一个刽子手代码 例如 下面是要猜测的单词 scala 但看起来像 至用户 假设用户输入字母 a 那么它一定看起来像 a a def checkGuess if result contains user
  • 了解如何使用 apply 和 unappy

    我试图更好地理解 的正确用法apply and unapply方法 考虑到我们想要序列化和反序列化的对象 这是正确的用法吗 即斯卡拉方式 的使用apply and unapply case class Foo object Foo appl
  • 哪些 ORM 与 Scala 配合得很好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Spark RDD默认分区数

    版本 Spark 1 6 2 Scala 2 10 我正在执行以下命令spark shell 我试图查看 Spark 默认创建的分区数量 val rdd1 sc parallelize 1 to 10 println rdd1 getNum
  • Java / Scala Future 由回调驱动

    简洁版本 我怎样才能创建一个Promise
  • 最小重复子串

    我正在看 Perl代码高尔夫页面 http www perlmonks org node id 82878 不要问为什么 并遇到了这个 第 3 洞 最小重复图案 编写一个子例程 它接受一个字符串 该字符串可能包含 重复模式 并返回最小的重复
  • 通用特征的隐式转换

    我正在实现一个数据结构 并希望用户能够使用任何类型作为密钥 只要他提供一个合适的密钥类型来包装它 我有这个关键类型的特质 这个想法是进行从基类型到键类型的隐式转换 反之亦然 实际上 只使用基类型 该特征看起来像这样 trait Key T
  • Scala:类似 Option (Some, None) 但具有三种状态:Some、None、Unknown

    我需要返回值 当有人询问值时 告诉他们以下三件事之一 这是值 没有价值 我们没有关于该值的信息 未知 情况 2 与情况 3 略有不同 示例 val radio car radioType 我们知道该值 返回无线电类型 例如 pioneer
  • Scala 如何忽略 Java 的检查异常?

    例如如果调用 JavaThread sleep这会抛出一个已检查的InterruptedException来自 Scala 源文件 然后不需要将调用包含在 Scala 中try catch Scala 如何删除将调用包围在 a 中的规则tr
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • 在 Scala 和 SBT 中调试较长的编译时间

    在我的 Scala SBT 项目中 我有一个文件需要 5 分钟才能编译 所有其他的都可以在几秒钟内编译 这使得开发非常痛苦 我确信我滥用了一些 Scala 构造 但我不知道如何调试它 如何在 Scala 中调试较长的编译时间 我正在使用 S
  • Scala:如何在超类上实现克隆方法,并在子类中使用它?

    我可能会以错误的方式处理这个问题 但我想要一个像这样的对象 class MyDataStructure def myClone val clone new MyDataStructure do stuff to make clone the
  • 运行具有外部依赖项的 Scala 脚本

    我在 Users joe scala lib 下有以下 jar commons codec 1 4 jar httpclient 4 1 1 jar httpcore 4 1 jar commons logging 1 1 1 jar ht

随机推荐

  • 在 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