dictionary issue (and maybe PEP ... depending on the answer)
Dave Harrison
dave at nullcube.com
Mon Jun 2 02:06:39 EDT 2003
My quick - ignorant - question is :
Why dont we get :
1, 11, 12, 2, 3, 4, 5, 6, 7, 8, 9
dsavitsk (dsavitsk at ecpsoftware.com):
> (Python 2.2.1 on FreeBSD 4.7 being used via mod_python 3)
>
> I have a dictionary at the top of a module that looks like this
>
> _months = {1: 'January',
> 2: 'February',
> 3: 'March',
> 4: 'April',
> 5: 'May',
> 6: 'June',
> 7: 'July',
> 8: 'August',
> 9: 'September',
> 10: 'October',
> 11: 'November',
> 12: 'December'}
>
> never mind, for now, that there are proably better ways to do what the
> dict obviously does. anyhow, I get a list of the months by doing this
>
> >>> [_months[i] for i in _months.keys()]
>
> The issue is, this consistently returns the months in order. I don't see
> any obvious reason that it does, but I can't get it to fail. So,I am
> wondering if there is a reason, or is it serendipity.
>
> Assuming that there is not a good reason, the PEP idea is adding a
> sorted_keys() method to dictionaries which would just return the keys in
> the same order they would be in by doing this.
>
> >>> l = d.keys()
> >>> l.sort()
>
> The advantage is that using dictionary keys in list comprehensions would
> be easier, but other than that it is not too big a deal.
>
> Thanks,
>
> Doug
>
> --
> http://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list