Kay Schluehr wrote: >> * 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.
Yeah, thanks for the update. I meant to include that too. STeVe -- http://mail.python.org/mailman/listinfo/python-list