Dictionary : items()
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Thu Jan 22 03:35:37 EST 2009
On Wed, 21 Jan 2009 23:02:11 -0800, koranthala wrote:
> Hi,
> Dictionary has the items method which returns the value as a list
> of tuples.
> I was wondering whether it would be a good idea to have an extra
> parameter - sort - to allow the tuples to be sorted as the desire of
> users.
> Currently what I do is:
>
> class SDict(dict):
> def items(self, sort=None):
> '''Returns list. Difference from basic dict in that it is
> sortable'''
> if not sort:
> return super(SDict, self).items()
> return sorted(self.iteritems(), key=sort)
>
> Usage:
> for a dictionary of strings sorted:
> l = abcd.items(sort=lambda x:(x[1].lower(), x[0]))
That is better written as:
l = sorted(abcd.items(), key=lambda x:(x[1].lower(), x[0]))
where abcd is *any* kind of mapping with an items() method. It could be a
dict, a defaultdict, ordereddict, binarytree, or anything else the caller
needs.
> Now what I wanted was to incorporate this in the basic dictionary
> itself. Not only items(), but the methods similar to it - iteritems etc
> all can also have this parameter.
>
> Please let me know your views.
> Is this a good enough idea to be added to the next version of Python?
No.
--
Steven
More information about the Python-list
mailing list