> I think I have lost the thread here, sorry. So I explain again what I > mean. I think for this data structure it's important to keep all the > normal dict operations at the same speed. If you use a C > implementation vaguely similar to my pure python recipe you can > perform the del in O(1) too, because pairs are joined in (double) > linked list. But such data structure is O(n) to find the n-th item > inserted into the sequence.
Right. So byindex(n) would be O(n) then, right? If so, what's the purpose of having that method in the first place? The PEP doesn't give a rationale, but just proposes that the method be there. My guess is that it includes it for performance reasons. However, I think the PEP (author) is misguided in assuming that making byindex() a method of odict, you get better performance than directly doing .items()[n] - which, as you say, you won't. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list