Scala 按索引过滤列表

2024-02-03

我想用函数式的方式来编写它,我能做的最好的就是:

list.zipWithIndex.filter((tt:Tuple2[Thing,Int])=>(tt._2%3==0)).unzip._1

获取元素 0, 3, 6,...

有没有更易读的 Scala 习惯用法?


如果效率不是问题,您可以执行以下操作:

list.grouped(3).map(_.head)

请注意,这会构造中间列表。

或者,您可以使用 for 理解:

for {
  (x,i) <- list zipWithIndex
  if i % 3 == 0
} yield x

这当然与您原来的解决方案几乎相同,只是写法不同。

我为您提供的最后一个选择是在压缩列表上使用收集:

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

Scala 按索引过滤列表 的相关文章

  • 获取有关 Groovy 函数的信息(名称、签名、主体代码)

    我有一个 Groovy 文件 其中包含一堆简单的函数 如下所示 useful functions def myFunc1 String arg println Hello arg def myFunc2 String arg println
  • 获取 N 的素数列表

    我正在尝试编写一个函数 它接受一个 Int 并返回直到并包括该 Int 的所有素数 例如 8 的素数列表 List 3 5 7 这是我到目前为止所拥有的 def isPrime i Int Boolean if i lt 1 false e
  • 了解函数类型

    我在尝试理解 Haskell 如何确定函数类型时感到有点困惑 这是一个例子 boolFcn x y x 3 y 4 当我检查上述函数的类型时 它给出了结果 Num a1 Num a Eq a1 Eq a gt a gt a1 gt Bool
  • Scala:列表中不同的foldRight实现

    我刚刚发现 scala 我在 2 12 上 提供了完全不同的实现向右折叠 for 不可变列表 and 可变列表 不可变列表 List scala override def foldRight B z B op A B gt B B reve
  • 将参数传递给 Scala 对象

    是否可以从外部对象初始化 Scala 对象 我尝试初始化的 Scala 对象没有任何 Companion 类 这是一个例子 object ObjectA val mongoDBConnectionURI This is the Val th
  • 对参数进行排序以利用柯里化

    我最近两次重构代码以更改参数的顺序 因为代码太多 黑客喜欢flip or x gt foo bar x 42正在发生 在设计函数签名时 哪些原则可以帮助我充分利用柯里化 对于轻松支持柯里化和部分应用的语言 有一系列令人信服的论点 最初来自
  • Slick 3 交易

    我对 slick 3 文档描述事务的方式感到困惑 我有 2 个光滑的代码 如下所示 def doSomething DB withTransaction implicit session gt userDao doSomething add
  • 测试期权价值的更好方法?

    我经常发现自己Option T 对于某些类型T并希望根据某个值来测试期权的价值 例如 val opt Some oxbow if opt isDefined opt get lakes do something 以下代码是等效的 并且不需要
  • 当恰好有一个选项非空时执行某项操作

    如果两个选项之一非空 我想计算一些东西 显然这可以通过模式匹配来完成 但是有更好的方法吗 o1 o2 match case Some o None gt Some compute o case None Some o gt Some com
  • 重载方法值与替代方法的聚合

    我有以下函数 但无法编译 private def save pea KStream String String Unit pea groupByKey aggregate gt folder String String value Stri
  • scala 元组拆包

    我知道这个问题已经以不同的方式出现过很多次 但我仍然不清楚 有没有办法达到以下目的 def foo a Int b Int foo a b right way to invoke foo foo getParams is there a w
  • 如何跟踪通过elastic4s客户端发送到Elasticsearch的json请求?

    假设我使用这样的代码 ElasticClient client client execute search in places gt cities query paris start 5 limit 10 如何查看发送到 Elasticse
  • Scala 中简单表达式的非法开始

    我刚刚开始学习scala 在尝试实现递归函数时 我在 Eclipse 中收到错误 简单表达式的非法开始 def foo total Int nums List Int if total nums sorted head 0 0 else r
  • Haskell - 让函数返回空字符

    我正在尝试创建一个函数来删除字符串中的每个第 n 个元素 dropEvery String gt Int gt String dropEvery str n map char indx gt if indx mod n 0 then cha
  • 抽象类型与类型参数

    在什么情况下抽象类型应该优先于类型参数 添加到我的之前关于抽象类型与参数的回答 https stackoverflow com questions 1154571 scala abstract types vs generics 11547
  • 登录模块控制标志在 JAAS 配置中不可用 - Scala Kafka

    尝试使用 kerberos 身份验证连接到 Kafka 时遇到问题 使用 scala 和我的jaas config看起来像这样 KafkaClient com sun security auth module Krb5LoginModule
  • 在 Scala REPL 中访问包私有方法

    假设我有一个private stuff method Stuff something in org my stuff 我可以在 Scala REPL 中做些什么 以便我可以调用Stuff something没有得到错误error value
  • 在无形状中,有两个列表,其中一个包含另一个的类型类

    在无形中 我正在尝试编写一个需要两个 HList 的函数l1 and l2任意长度 具有以下属性 的长度l1 and l2是相同的 l2包含的确切类型l1 包装在常量外部类型构造函数中 So if l1 was 1 1 2 hello HN
  • 在 Akka Actor 中使用 Future

    我刚刚开始学习 Scala 中的 Akka Actors 我的理解是 Actor 收到的消息会在 Actor 的邮箱中排队 并一次处理一个 通过一次处理一条消息 可以缓解并发问题 竞争条件 死锁 但是 如果 Actor 创建一个 futur
  • 使用新的反射API,如何找到类的主构造函数?

    您可以像这样获取类的所有构造函数 import scala reflect runtime universe val ctor typeOf SomeClass declaration nme CONSTRUCTOR asTerm alte

随机推荐

  • 如何在 Openssl 中使用 AES 进行加密

    我正在尝试编写一个示例程序来使用 Openssl 进行 AES 加密 我尝试浏览 Openssl 文档 这很痛苦 但无法弄清楚太多 我浏览了代码并找到了 API 我使用它编写了一个小程序 如下所示 请省略行号 我没有看到任何加密发生 我错过
  • Laravel 6.0 Eloquent - 按日期和状态排序

    尝试先按最新日期订购我的桌子 然后按状态订购 状态可以是 新建 审核中 拒绝 已关闭 状态是数据库中的枚举字段 我尝试了几件事但没有成功 这是我用这段代码得到的最接近的结果 我是 Laravel 新手 所以不知道该怎么做 inquiries
  • 在 iOS 16.2 上水平布局 2 个文本字段时应用程序崩溃

    当水平布局 2 文本字段时 我的应用程序在 iOS Simulator 16 2 上崩溃了 在 iOS Simulator 16 2 上逐步重现 环境 Xcode 14 2 iOS 16 2 模拟器 Step 1 2 text fields
  • 如何限制MySQL距离查询

    我正在尝试执行距离计算以返回特定距离内的地点列表 这是基于使用邮政编码数据库并确定从出发地到每个位置的距离 我想要做的是将结果限制在距原点一定距离内 但我的 MySQL 查询遇到了问题 这是基本查询 SELECT ROUND DEGREES
  • R - 二进制博客数据的聚类分析

    我有一个与下面的示例类似的网络数据 它仅具有用户和二进制值 用于表明该用户是否点击了网站内的特定链接 我想对这些数据进行一些聚类 我的主要目标是根据用户的在线行为找到相似的用户 对此有什么好的聚类算法 我尝试过 k means 它不适用于二
  • 如何使单个 React Docker 构建/映像在所有环境中运行?

    我正在尝试在单个 Docker 容器中部署一个 React 应用程序 该容器能够在 OpenShift 平台上运行 dev preprod 和 prod 在该平台上我只能推送标记的 docker 镜像 为了做到这一点我有 使用 Github
  • 警告:未将分支主设置为其自己的上游

    我正在尝试将 git 分支设置为上游 但低于警告 Command git checkout master git branch set upstream to master 警告 未将分支主设置为其自己的上游 我该如何解决 这是否意味着它已
  • PHP Switch 语句

    switch sort case abc order by subject ASC break case fn order by u username ASC break case rd order by p posted on DESC
  • 将 ssis 中的 sql server 查询输出导出到文本文件,包括列标题

    我一直在尝试将 SqlServer sql 查询 存储过程 的输出导出到文本文件 我使用带有 OLEDB 源和平面文件目标的数据流任务来实现它 我还想在文本文件中获取列标题以及查询结果 但我不知道如何包含列标题 我想在 SSIS 中动态地执
  • 函数式编程中的引用透明性

    我是 JS 新手 正在学习函数式编程 并遇到了 引用透明度 这个术语 另外 我发现了这样的说法 引用透明度表明用纯函数的值替换纯函数是安全的 这是否意味着只要函数变热 使用 RT 就可以让 JIT 编译器轻松地用函数的返回值替换函数 真的吗
  • 如何跨多个页面传递多个变量?

    我的网站涉及用户通过多页表单提交数据 我可以将一页上提交的数据直接传递到下一页 但是如何将其发送到之后的页面呢 这是我正在做的事情的一个非常简化的版本 Page 1 Page 2
  • 在 HTML+CSS 中的活动菜单项下添加箭头

    我正在尝试生成如下菜单 菜单中有多个项目 活动的项目后面有一个箭头 菜单项是类似以下代码的标签 div class menuCenter div class linksWrapper a href Home a a class menuCe
  • Firefox 中调整大小时背景图像下的线条闪烁

    我正在构建一个网站 其标题中有一个全宽背景图像 可随页面调整大小 在 Firefox 中调整图像大小时 图像下方会出现一条不寻常的闪烁水平线 该线不会完全显示 但会在尺寸更改时闪烁 该线出现在背景图像的底部 而不是标题元素的底部 仅当我在
  • 尝试使用 .toUpperCase() 将字母转换为大写...不起作用?

    我试图使用 toUpperCase 将数组中的字符转换为大写 但它不起作用 我很确定我的逻辑是正确的 所以不确定为什么它不起作用 var test hello 3 function LetterChanges str var testArr
  • 如何在Python中水平放置单选按钮

    AANTAL 1 1 2 2 3 3 4 4 5 5 6 6 v StringVar v set 1 for text mode in AANTAL but Radiobutton Main padx 20 pady 10 font ari
  • Magento 和 Paypal 税务舍入问题

    我对 Paypal 和 Magento 1 7 0 2 有一些舍入问题 网站上的所有价格均含税 税费按 20 增值税 计算 我去结账 一切都正确 然后我会点击下订单 Paypal 就会像这样 这是不正确的 因为现在总计少了 1p 这似乎是由
  • 表单元素未出现在 $scope 中

    这是我的表格的开始 div 这是我的控制器 app controller Customer scope function scope alert scope CustomerForm scope CustomerForm未定义 表格不应该添
  • RHEL 上的 Docker CE - 要求:container-selinux >= 2.9

    我正在尝试安装Docker CE on RHEL使用这个link https stackoverflow com questions 42981114 install docker ce 17 03 on rhel7 这是我的 RHEL 版
  • 使用 execv(C 语言)从 Linux 命令提示符运行命令

    到目前为止 我唯一感到困惑的部分是如何设置 execv 并使用第一个参数作为当前工作目录 我已经尝试过两个 和 都没有在屏幕上执行任何操作 也一样 和 我对如何让 execv 运行这样的事情感到困惑 prog ls t al 并让它在程序执
  • Scala 按索引过滤列表

    我想用函数式的方式来编写它 我能做的最好的就是 list zipWithIndex filter tt Tuple2 Thing Int gt tt 2 3 0 unzip 1 获取元素 0 3 6 有没有更易读的 Scala 习惯用法 如