[EMAIL PROTECTED] wrote: > As for the (k,v) vs (v,k), I still don't think it is a good example. I > can always use index to access the tuple elements and most other > functions expect the first element to be the key. For example : > > a=d.items() > do something about a > b = dict(a) > > But using the imaginary example : > > a = zip(d.values(), d.keys()) > do something about a > b = dict(a) # probably not what I want. >
The typical use case for the (v,k) tuple would be when you want sort the contents of a dictionary by value. e.g. counting the number of occurrences of each word in a document. a = zip(d.values(), d.keys()) a.sort() a.reverse() print "Today's top 10:" print str.join(',', [ k for (v,k) in a[:10]]) Ok, so today you can do that another way, but before there was a key parameter to sort you had to build the tuple somehow: print str.join(',', sorted(a.iterkeys(), key=a.__getitem__, reverse=True)[:10]) and the advantage of the latter is of course that it works even when you've been counting the number of occurences of complex numbers in a document :) -- http://mail.python.org/mailman/listinfo/python-list