PS.
22-01-2010 o 15:44:28 Jan Kaliszewski <z...@chopin.edu.pl> wrote:
22-01-2010, 14:58:58 Gilles Ganault <nos...@nospam.com> wrote:
On 22 Jan 2010 13:35:26 GMT, Neil Cerutti <ne...@norwich.edu> wrote:
Resorting is more work than is needed. Just choose a different
starting index each time you display the names, and set up your
lister to wrap-around to your arbitrary starting index.
Thanks. In this case, it means that in each loop iteration, I must
search the list to find which item starts with the letter I'd like to
begin sorting, eg. "B". Does Python include a search method or do I
have to use a for loop to locate this starting item?
There is e.g. `bisect' module -- you can search as well as insert with
its functions. But IMHO you shouldn't search for the next starting
*letter*, but for the next *name* in the list (basing on name that was
used recently).
Or simply choose the starting index randomly -- using
random.randrange(len(userlist)) or random.randint(0, len(userlist)-1) --
and use bisect.insort() for inserting to the list keeping it sorted (if
you need to list users sorted+rotated).
Regards,
*j
--
http://mail.python.org/mailman/listinfo/python-list