Dictionary : items()

Terry Reedy tjreedy at udel.edu
Thu Jan 22 02:33:30 EST 2009


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]))
> 
> 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?

In Python 3, the current .keys() returning a list and .iterkeys() 
returning an iterator both disappear and are replaced by .keys() 
returning an iterable set-like view of the dict.  'sorted(d.keys())' is 
the way to convert the view into a sorted list.  So your idea is obsolete.




More information about the Python-list mailing list