如何在 Scala 中减去列表中的两个连续元素?

2024-02-28

我想用 Scala 中的数字减去列表中的两个连续元素。

例如:我有这个清单:

val sortedList = List(4,5,6)

我想要一个像这样的输出列表diffList =(1, 1) where 5-4 = 1 and 6-5 = 1.

我尝试了以下代码:

var sortedList = List[Int]()
var diffList = List[Int]()

for (i <- 0 to (sortedList.length - 1) ;j <- i + 1 to sortedList.length - 1) 
{
    val diff = (sortedList(j) - sortedList(i))
    diffList = diffList :+ diff
}

我有以下结果diffList =(1, 2, 1)但我想要diffList = (1,1).

这是因为 for 循环。它不会同时迭代两个变量(i 和 j)。


您不需要通过可变性或命令式编程来解决这个问题,函数式编程可以满足您的需求。

def consecutiveDifferences(data: List[Int]): List[Int] =
  if (data.isEmpty) List.empty
  else data.lazyZip(data.tail).map {
    case (x, y) => y - x
 }

正如我常说的,Scaladoc https://www.scala-lang.org/api/current/是你的朋友。
(另外,作为一个建议,学习函数式编程的最好方法是禁止自己的可变性)

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

如何在 Scala 中减去列表中的两个连续元素? 的相关文章

  • 创建动态对象

    如何动态创建对象 string columnNames EmpName EmpID PhoneNo List
  • 替换 Python 列表/字典中的值?

    好的 我正在尝试过滤传递给我的列表 字典并稍微 清理 它 因为其中有某些值我需要删除 所以 如果它看起来像这样 records key1 AAA key2 BBB key3 CCC key4 AAA 我如何快速轻松地运行所有内容并将 AAA
  • 为什么 Cassandra 客户端在生产中没有 epoll 时会失败? [复制]

    这个问题在这里已经有答案了 当我在本地运行服务时 我收到一条警告 指出 epoll 不可用 因此它使用 NIO 很公平 当我将其部署到 Kubernetes 中时 我得到了以下信息 这导致服务无法运行 2017 03 29T19 09 22
  • 如何将整个列表分配给 pandas 数据帧的每一行

    我有一个数据框和一个列表 df pd DataFrame A 1 2 3 B 4 5 6 mylist 10 20 30 40 50 我希望有一个列表作为数据帧的每一行中的元素 如果我喜欢的话here https stackoverflow
  • Scala Sparkcollect_list() 与 array()

    有什么区别collect list and array 在 Spark 中使用 scala 我看到到处都有使用情况 但我不清楚用例来确定差异 尽管两者array https spark apache org docs latest api
  • 在 Spark 中将流式 XML 转换为 JSON

    我是 Spark 新手 正在开发一个简单的应用程序 将从 Kafka 接收的 XML 流转换为 JSON 格式 Using 火花2 4 5 斯卡拉 2 11 12 在我的用例中 kafka 流采用 xml 格式 以下是我尝试过的代码 val
  • 如何列出所有 sbt 依赖项?

    我需要列出所有 sbt 依赖项 以便检查是否已存在 debian 软件包 我还注意到有一个 DEB 包 http www scala sbt org 0 13 tutorial Installing sbt on Linux html但似乎
  • 获取两个顶点之间的边属性值时出现 ClassCastException

    我正在尝试获取两个顶点之间的边缘属性值并低于异常 java lang ClassCastException 无法将 java lang String 转换为 scala runtime Nothing 环境 内存中的泰坦 Code val
  • 打乱列表并返回副本

    我想对数组进行洗牌 但我找到的只是类似的方法random shuffle x from 在 Python 中随机化字符串列表的最佳方法 https stackoverflow com questions 1022141 best way t
  • 将列表中的所有其他元素相乘

    我有一个清单 比方说 list 6 2 6 2 6 2 6 我希望它创建一个新列表 其中每个其他元素乘以 2 每个其他元素乘以 1 保持不变 结果应该是 12 2 12 2 12 2 12 def multi res 0 for i in
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • akka-http:找不到参数解组的隐式值

    我的 Spray json 支持看起来像这样 object MarshallingSupport extends SprayJsonSupport implicit def json4sFormats Formats DefaultForm
  • Scala 中的行聚合

    我正在寻找一种方法在 Scala 的数据框中获取一个新列来计算min max中的值col1 col2 col10对于每一行 我知道我可以使用 UDF 来做到这一点 但也许有一种更简单的方法 Thanks Porting 这个Python答案
  • 在 python 中创建默认列表

    我正在尝试创建一个非常有用的等效列表collections defaultdict http docs python org library collections html collections defaultdict 下面的设计效果很
  • 理解 scala 的 _ 与 Any/Nothing

    如果一个类具有协变类型参数 例如Iterable A http www scala lang org archives downloads distrib files nightly docs 2 10 1 library index ht
  • 如何使用 FS2 中的分类器函数对对象进行分组?

    我有一个无序的流measurements 我想将其分组为固定大小的批次 以便以后可以有效地保留它们 val measurements for id lt Seq foo bar baz value lt 1 to 5 yield id va
  • 按元素聚合数组

    Spark scala 相当新 我想知道是否有一种简单的方法以按列方式聚合 Array Double 这是一个例子 c1 c2 c3 1 1 1 0 1 0 3 4 1 2 1 0 0 0 4 3 2 1 0 0 0 0 0 0 2 3 1
  • Scala 匿名函数中的 return 语句

    为什么显式 return 语句 使用return关键字 在匿名函数中从封闭的命名函数返回 而不仅仅是从匿名函数本身返回 例如 以下程序会导致类型错误 def foo String x Integer gt return x foo 我知道建
  • 对 Spark 数据集中的数字字符串进行排序

    假设我有以下内容Dataset productCode amount XX 13 300 XX 1 250 XX 2 410 XX 9 50 XX 10 35 XX 100 870 Where productCode is of Strin
  • 将 DOCTYPE 添加到 Scala XML 的最简单方法?

    我怎样才能在 Scala XML 中制作这个最小的 HTML5 p p 当然 在 Scala 中制作类似 HTML 的 XML 很简单 gt val html p p html scala xml Elem p p 但是 我怎样才能注入DO

随机推荐

  • 将 Json 转换为 Poco 集合/如何编写 For Each?

    我对 Azure Functions 还很陌生 我创建了一个 C WebHook Azure 函数 我想这是正确的事情 来获取我的 json 内容并将其转换为简单的 poco dto 对象的集合 public static class Ge
  • 我的应用程序未显示在 Google Play 中 [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我大约 18 小时前将我的应用程序上传到 google play 但它没有显示 开发者控制台显示 已发布 我想应该可以在 url
  • 使用ffmpeg处理rtsp流url时出现未知命令失败

    我想使用ffmpeg从rtsp流中抓取图像 命令如下 ffmpeg y i rtsp zigong stream xl02 cn 557 HongTranSvr DevId 1b038d27 858c 46a1 b803 a2984af34
  • 关闭 I/O 流

    如果我不关闭流 可能会发生哪些不好的事情 关闭操作会自动刷新吗 程序退出后所有的流都关闭了吗 提前致谢 如果您不关闭流 可能会发生不好的事情 你可能会用完文件句柄 您认为写入磁盘的数据可能仍在缓冲区中 仅 文件可能仍被其他进程锁定 取决于平
  • 将 .jar 文件添加到 git 存储库中

    我在 eclipse 上有一个项目 最近我创建了一个名为 lib 的新文件夹 并在其中添加了一些 jar 文件 我似乎无法将更改提交到 git 它只是没有出现在文件跟踪列表中 我已经从我的分支中的 gitignore 中删除了 jar 并提
  • 温莎城堡中的多个装饰器模式

    我们正在重新设计一些遗留软件以使其更具可测试性 并决定使用依赖注入和 Castle Windsor 来帮助我们 首先 我们的目标 许多装饰器都在数据流上工作 装饰器的多种组合是可能的 并且每种情况下的根节点可能需要从不同的地方获取数据 从技
  • ExpressJS:将参数传递给html不起作用

    这是我的server js var browserify require browserify middleware var express require express var app express var path require
  • 协作环境中实体框架的迁移

    我们有多个开发人员正在开发一个使用 Entity Framework 5 0 的项目 每个开发人员都使用自己的本地 SQL 2012 数据库 这样他就可以在不妨碍其他人的情况下进行开发和测试 起初 我们混合使用自动迁移和基于代码的迁移 这根
  • 有没有办法将 Google Analytics(分析)资产转移到新帐户?

    当我最初创建 Google 分析帐户时 我将所有网站 属性 添加到一个帐户中 现在我想将它们转移到他们自己的个人帐户 但我似乎找不到任何可用此选项的地方 我可以轻松创建一个新帐户 但这似乎需要创建一个新的属性和视图 如果可能的话 我想保留
  • 保护 CRTP:私有析构函数是唯一的解决方案吗?

    如何避免 template
  • Spring Security 中的 @Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) 与 ManagementServerProperties.ACCESS_OVERRIDE_ORDER

    问题1 在Spring Security中 到底有什么功能 Order SecurityProperties ACCESS OVERRIDE ORDER Spring文档说明如下 但我不确定我是否理解清楚 要覆盖访问规则而不更改任何其他自动
  • 为什么 SqlAzureExecutionStrategy 不处理错误:19 - 物理连接不可用

    完整异常 System Data Entity Core EntityCommandExecutionException An error occurred while executing the command definition Se
  • 用Java Unix 套接字连接到MySql 以避免JDBC 的TCP/IP 开销?

    是否可以使用 Java 建立与 MySql 的 Unix 套接字连接以避免 JDBC 的 TCP IP 开销 有谁知道一个图书馆 或几个图书馆 也许 可以实现这一点 此外 mySQL JDBC 驱动程序经过了很长一段时间的打磨 并进行了多项
  • 实施苹果推送通知的步骤是什么?

    我是这个主题的新手 需要一些指导来在我的应用程序中实现 Apple 推送通知 我已经创建了我的 appID 并为其配置了 Apple 推送通知 我已经下载了配置文件并在 iPhone 上安装了该应用程序 我还编写了Apple文档提供的以下代
  • 如何在路线更改时重置滚动位置?

    我在 Angular JS 上度过了最初的几个小时 并尝试用它编写 SPA 但是 在更改路线时 滚动位置在更改路线后仍保持在当前位置 这意味着 如果有人读完第二页上的一半文本 则在切换到第二页后 此人将在第二页时最终位于页面中间 假设页面同
  • Java 正则表达式提供任何性能优势吗?

    在Java中 当我们尝试使用正则表达式进行模式匹配时 例如获取输入字符串并使用正则表达式来确定它是否是数字 如果不是 则抛出异常 在这种情况下 我理解 使用正则表达式使代码比我们获取字符串的每个字符 检查它是否是数字 如果不是则抛出异常更简
  • Python 中的 RSS 提要解析器库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个好的 python 库来帮助我解析 RSS 提要 有人用过 feedparser 吗 任何
  • 如何在 Firemonkey 中加载自定义光标?

    我需要在我的 Firemonkey 桌面项目中使用自定义光标 我可以在 VCL 项目中使用 LoadCursorFromFile 在我的项目中加载自定义光标 我尝试对 Firemonkey 执行相同的操作 但它没有加载光标 有没有什么工作方
  • 如何使用 jQuery 清空输入字段

    我在移动应用程序中 使用输入字段来命令用户提交号码 当我返回并返回到输入字段显示输入字段中显示的最新数字输入的页面时 有没有办法在每次加载页面时清除该字段 shares keyup function payment 0 calcTotal
  • 如何在 Scala 中减去列表中的两个连续元素?

    我想用 Scala 中的数字减去列表中的两个连续元素 例如 我有这个清单 val sortedList List 4 5 6 我想要一个像这样的输出列表diffList 1 1 where 5 4 1 and 6 5 1 我尝试了以下代码