Does Kotlin Have an "Enumerate" Function Like Python?

Does Kotlin Have an "Enumerate" Function Like Python?

In Python I can write:

for i, element in enumerate(my_list):
    print i          # the index, starting from 0
    print element    # the list-element

How can I write this in Kotlin?

2 Answers

Iterations in Kotlin: Some Alternatives

Like already said, forEachIndexed is a good way to iterate.

Alternative 1

The extension function withIndex, defined for Iterable types, can be used in for-each:

val ints = arrayListOf(1, 2, 3, 4, 5)

for ((i, e) in ints.withIndex()) {
    println("$i: $e")
}

Alternative 2

The extension property indices is available for Collection, Array etc., which let's you iterate like in a common for loop as known from C, Java etc:

for(i in ints.indices){
     println("$i: ${ints[i]}")
}
1

There is a forEachIndexed function in the standard library:

myList.forEachIndexed { i, element ->
    println(i)
    println(element)
}

See @s1m0nw1's answer as well, withIndex is also a really nice way to iterate through an Iterable.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

David Miller
Author

David Miller

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.