dictionary issue (and maybe PEP ... depending on the answer)
news at manuelmgarcia.com
Mon Jun 2 18:10:36 CEST 2003
Cheap trick for 1-based lists, just have an extra 'None' in the 0th
_month_names = [
Steven Taschuk's code is the most general technique:
months = [(1, 'January'),
monthdict = dict(months)
monthnames = [name for number, name in months]
Trivial to write a function:
newlist = dict0.keys()[:]
print [_months[i] for i in sorted_keys(_months)]
The reason Python doesn't have a 'return a sorted copy'
(non-destructive) built-in method for lists is that the fastest
sorting algorithms are all 'in-place' (destructive). Python has as a
rule "there is only one way to do it", so the 'in-place' sort was
chosen as the only built-in method. As you can see above, it is easy
to write your own 'non-destructive' sort.
The reason that list0.sort() returns 'None' when used in an
expression, is so that you will never use it in an expression! The
sort's 'in-place' behavior is thus made explicit.
More information about the Python-list