List.mapIndexed()
Как map(), но в функцию передаётся ещё и индекс элемента.
Сигнатура
fun <T, R> Iterable<T>.mapIndexed(transform: (index: Int, T) -> R): List<R>mapIndexed() передаёт в transform индекс и сам элемент, что удобно, когда результат зависит от позиции.
val letters = listOf("a", "b", "c")
val out = letters.mapIndexed { i, s -> "$i:$s" }
println(out) // [0:a, 1:b, 2:c]