This language bar is your friend. Select your favorite languages!

Idiom #7 Iterate over list indexes and values

Print each index i with its value x from an array-like collection items

with Ada.Text_IO;
use Ada.Text_IO;
for I in Items'Range loop
   X := Items (I);
   Put_Line (Integer'Image (I) & " " & Integer'Image (X));
end loop;
for (size_t i = 0; i < n; i++) {
  printf("Item %d = %s\n", i, toString(items[i]));
}
(* output_elem is a printer for elements of [items] *)
items |> List.iteri (fun i x ->
	printf "%d: %a" i output_elem x
)
(doseq [[i x] (map-indexed vector items)]
  (println i ":" x))
#include <iostream>
for (std::size_t ix = 0; ix < items.size(); ++ix) {
  std::cout << "Item " << ix << " = " << items[ix] << std::endl;
}
#include <iostream>
std::size_t i = 0;
for(const auto & x: items) {
  std::cout << "Item " << i++ << " = " << x << std::endl;
}
using System;
for (int i = 0; i < items.Length; i++)
{
    Console.WriteLine("{0} {1}", i, items[i]);
}
import std.stdio, std.algorithm;
import std.range;
items.enumerate.each!(a => writeln("i = ", a[0], " value = ", a[1]));
import std.stdio;
foreach(i, x; items)
{
   writefln("%s: %s", i, x);
}
for (var i = 0; i < items.length; i++) {
  print('index=$i, value=${items[i]}');
}
items.asMap().forEach((i, value) {
  print('index=$i, value=$value');
});
items
|> Enum.with_index
|> Enum.each(fn({x, i}) ->
  IO.puts("#{i} => #{x}")
end)
WithIndex =
  lists:zip(lists:seq(1, length(Items)), Items),
io:format("~p~n", [WithIndex]).
do i=1, size(items)
  print *,i, items(i)
end do
import "fmt"
for i, x := range items {
    fmt.Printf("Item %d = %v \n", i, x)
}
mapM_ print (zip [0..] items)
for (var i in items) {
   console.log("index=" + i + ", value=" + items[i]);
}
items.forEach((val, idx) => {
  console.log("index=" + idx + ", value=" + val);
});
for (int i = 0; i < items.size(); i++) {
    T x = items.get(i);
    System.out.printf("Item %d = %s%n", i, x);
}
for (int i = 0; i < items.length; i++) {
    T x = items[i];
    System.out.printf("Item %d = %s%n", i, x);
}
items.forEachIndexed { i, x -> 
  print("i=$i x=$x") 
}
(loop for i from 0 and x across items
      do (format t "~a = ~a~%" i x))
for i, x in ipairs(items) do
	print('Index: '..i..', Value: '..x)
end
foreach ($items as $i=>$x)
{
    echo "i=$i, x=$x"; echo '<br>';
}
var I:Integer;
    Items: array of String;
[..]
  for I := 0 to high(Items) do
    WriteLn('Item ', I, ' = ', Items[I]);
Classes, SysUtils
var I:Integer;
    Items: array of TObject;
[...]
  for I := 0 to high(Items) do
    if assigned(Items[I]) then
      WriteLn(Format('Item %d = %s', [I, Items[I].ToString]));
use 5.012; # each @array
# For an array
while (my ($idx, $val) = each @array) {
    print "array[$idx] = $val\n";
}

# For a hash
while (my ($key, $val) = each %hash) {
    print "hash{$key} = $val\n";
}
for i, x in enumerate(items):
    print i, x
items.each_with_index do |x, i| 
  puts "Item #{i} = #{x}"
end
items.each_index{|i| puts "Item %d = %s" % [i, items[i]]}
for (i, x) in items.iter().enumerate() {
    println!("Item {} = {}", i, x);
}
val items = List("a", "b", "c")
items.zipWithIndex.foreach{ case (item, index) => 
  println(s"$index => $item")
}
(define (display-list items)
  (define (display-list items i)
    (if (not (null? items))
        (begin
          (display (string-append
                    (number->string i)
                    ": "
                    (number->string (first items))
                    "\n"))
          (display-list (rest items) (+ i 1)))
        'done))
  (display-list items 0))
Dim ItemList As New List(Of String)(New String() {"one", "two", "three"})
For x = 0 To ItemList.Count - 1
    Console.WriteLine(x & " " & ItemList(x))
Next

Do you know the best way to do this in your language ?
New implementation...

Idiom created by

programming-idioms.org

Related idioms