Op 2005-10-12, George Sakkis schreef <[EMAIL PROTECTED]>: > "Antoon Pardon" <[EMAIL PROTECTED]> wrote: >> Comments are welcome: >> >> http://www.pardon-sleeuwaegen.be/antoon/avltree.html > > How about adding two shortcut methods, nextkey(k) and prevkey(k), to return > the next and previous > key respectively ? For instance nextkey would be equivalent to (untested):
I'll file this as: I'll probably never need it, so I'm going to resist the temptation to add them now. If i find out I'm wrong, I can still do so later. > def nextkey(self, key): > iter = self[key:] > first = iter.next() > if key not in self: return first > else: return iter.next() I think the if statement can be replaced by: if not self.cmp(key, first) == 0: return first > Also for consistency, nextvalue(k), prevvalue(k), nextitem(k), previtem(k) > would be reasonable > additions. > > And a question: what does step do if the keys are not integers since you > restrict step to be integer > ? It skips keys/items/values. >>> radio = [ ... 'alfa', 'bravo', 'charlie', 'delta', 'echo', 'foxtrot', 'golf', 'hotel', 'india', ... 'juliet', 'kilo', 'lima', 'mike', 'november', 'oscar', 'papa', 'quebec', 'romeo', ... 'sierra', 'tango', 'uniform', 'victor', 'whiskey', 'x-ray', 'yankee', 'zulu' ] >>> >>> letters = 'abcdefghijklmnopqrstuvwxyz' >>> from avltree import Tree >>> t=Tree(zip(radio,letters)) >>> t.keys('choco',None,3) ['delta', 'golf', 'juliet', 'mike', 'papa', 'sierra', 'victor', 'yankee'] >>> t.values('bureau',None,4) ['c', 'g', 'k', 'o', 's', 'w'] What would you have in mind if step would have been a string here? -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list