> * building a dict of indicies::
>
>        positions = dict((item, i) for i, item in enumerate(L))
>
>        if positions['A'] < positions['D']:
>            # do some stuff
>
>    You'll only get a gain from this version if you need to do several
> comparisons instead of just one.

Hi Steven,

your solution may not create the correct answer if an item occurs twice
in the list because the later occurrence overwrites the former during
dict creation:

>>> L = ['C', 'A', 'D', 'B', 'A']
>>> dict((item, i) for i, item in enumerate(L))
{'A': 4, 'C': 0, 'B': 3, 'D': 2}

This gives the impression that 'D' always precedes 'A' which is wrong.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to