[ python-Bugs-1095342 ] Python FAQ: list.sort() out of date

SourceForge.net noreply at sourceforge.net
Tue Jan 4 00:16:48 CET 2005


Bugs item #1095342, was opened at 2005-01-03 23:16
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1095342&group_id=5470

Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Tim Delaney (tcdelaney)
Assigned to: Nobody/Anonymous (nobody)
Summary: Python FAQ: list.sort() out of date

Initial Comment:
http://www.python.org/doc/faq/general.html#why-
doesn-t-list-sort-return-the-sorted-list

specifies the idiom:

keys = dict.keys()
keys.sort()
for key in keys:
        ...do whatever with dict[key]...

and doesn't mention sorted().

I would suggest the following wording be used:

In situations where performance matters, making a copy 
of the list just to sort it would be wasteful. Therefore, 
list.sort() sorts the list in place. In order to remind you 
of that fact, it does not return the sorted list. This way, 
you won't be fooled into accidentally overwriting a list 
when you need a sorted copy but also need to keep the 
unsorted version around.

In Python 2.4 a new builtin - sorted() - has been added. 
This function creates a new list from the passed 
iterable, sorts it and returns it.

As a result, here's the idiom to iterate over the keys of a 
dictionary in sorted order:

for key in sorted(dict.iterkeys()):
        ...do whatever with dict[key]...


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1095342&group_id=5470


More information about the Python-bugs-list mailing list