Когда вы вызываете dict.values (), порядок возвращаемых элементов зависит от значения ключа has. Это выглядит очень согласованно во всех версиях cPython, однако в руководстве по python для dict просто говорится, что порядок «произвольный» .
Я помню, как где-то читал, что на самом деле есть PEP, в котором конкретно указывается ожидаемый порядок методов items () и values ().
К вашему сведению, если это поведение действительно является гарантированным поведением класса, над которым я работаю, я мог бы значительно упростить и ускорить работу класса, над которым я работаю. С другой стороны, если это просто случайная и недокументированная особенность cPython, то, вероятно, лучше не доверять ей.