scala - zipWithIndex 从 1 而不是 0

标签 scala

如果我有一个列表和 zipWithIndex

val list = List('a', 'b', 'c')
val ziplist = List.zipWithIndex
// List[(int, int)] = List(('a', 0), ('b', 1), ('c', 2))

如果我想从 1 而不是 0 开始索引,有没有比我当前更聪明的方法:

val ziplist = List.zipWithIndex.map( ele => (ele._1, ele._2 + 1))

希望大家帮忙!

在摘要中描述

最佳答案

您可以使用LazyList.from(1)来生成索引:

List('a', 'b', 'c').zip(LazyList.from(1)) // List((a,1), (b,2), (c,3))

如果您使用 2.13 之前的 Scala,则需要使用 Stream 而不是 LazyList:

List('a', 'b', 'c').zip(Stream.from(1)) // List((a,1), (b,2), (c,3))

关于scala - zipWithIndex 从 1 而不是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57867393/

相关文章:

scala:向列表添加方法?

JSON 数组和 Scala Seq

scala - 像普通的 Seq 一样对待 Spark RDD

scala - OSGi Karaf Scala UnsupportedAudioFileException

java - 通过 javaagent 拦截具有丰富参数的方法

scala - 如何在 Scala 中弃用具有默认值的参数?

Scala:向 super 方法添加可选参数

scala - Scala 的 SBT 中的默认日志文件在哪里?

java - 如何使用 Eclipse 在虚拟机上进行开发?

scala - Spark : PageRank example when iteration too large throws stackoverflowError