Es normal lo que resaltas, pues en cada vuelta del bucle sobreescribes la misma variable con el valor actual, lo cual resulta en el último valor.
No entiendo que es lo que planeas, pero así tienes programado tu código, y hace solo lo que tu le indicas.
¿A que te refieres con "no el valor según sea el que esté listado"?