"Emile van Sebille" <em...@fenx.com> wrote
It's expensive enough that for a list this size I'd convert it to a dict
and use in on that. eg,
a = range(100000)
d = dict(zip(a,a))
Surely that would depend on how often you do the search?
If its a one off occurence I'd expect the overhead of zipping
and converting to a dict would outweight the savings?
If the search was inside a loop however then I'd definitely
agree. Although I'd opt for a set rather than a dict...
Another option would be to use the bisect module on a
sorted version of the list.
if x in L
is like
L2 = sorted(L)
if L2[bisect.bisect_left(x)] == x # untested! Might need bisect_right()...
But only testing and timing would tell which was faster.
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor