Issue 17262: OrderedDict not ordering properly when int and float keys are used (original) (raw)
I've got two lists:
state_cns_list = [0.001, 1, 2, 5] state_names_list = [L, S, D, H]
When I try to create an OrderedDict linking each state_cns_list entry with its corresponding state_names_list entry, like so:
states = OrderedDict( {float(state_cns_list[i]): state_names_list[i] for i in range(0, len(state_cns_list) ) } )
rather than maintaining the original order, (0.001, 'L') is placed at the end of the OrderedDict instead of at the beginning. The attached screenshot shows the bug in action.
Although it's not in the screenshot, when I try placing 4 integers into state_cns_list instead of 3 integers and a float, it has no problem correctly ordering them.