Объект Python dict
не имеет внутреннего порядка, кроме как в самых последних версиях Python, поэтому вы не можете предполагать, что вы получите объекты в том же порядке, в котором вы их поместили.
Если вам нужна эта функциональность, есть объект OrderedDict
, который вы можете использовать.
import random
from collections import OrderedDict
# Normal dict behavior:
numbers = {}
random_nums = (random.random() for _ in range(1000))
for i in random_nums:
numbers[i] = random.random()
assert list(numbers.keys()) != list(random_nums)
# Ordered dict behavior:
numbers = OrderedDict()
for i in random_nums:
numbers[i] = random.random()
assert list(numbers.keys()) == list(random_nums)
При поиске альтернативы displaytag я столкнулся с jmesa. Еще не попробовали его, жесткий.
другая альтернатива является valuelist - это - довольно хорошая реализация Java Обработчика Списков Значения шаблон EE, но это - разработка, кажется, останавливается так или иначе.