zipWithIndex从1而不是0

PaF*_*Fko 6 scala

如果我有一个列表和zipWithIndex

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

如果我想从1而不是0进行索引,是否有比我目前更好的方法:

val ziplist = List.zipWithIndex.map( ele => (ele._1, ele._2 + 1))
Run Code Online (Sandbox Code Playgroud)

希望你们能提供帮助!

总结中描述

Krz*_*sik 9

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

List('a', 'b', 'c').zip(LazyList.from(1)) // List((a,1), (b,2), (c,3))
Run Code Online (Sandbox Code Playgroud)

如果您使用的Scala版本早于2.13,则需要使用Stream而不是LazyList

List('a', 'b', 'c').zip(Stream.from(1)) // List((a,1), (b,2), (c,3))
Run Code Online (Sandbox Code Playgroud)