append to the end of a dictionary
Fuzzyman
fuzzyman at gmail.com
Wed Jan 25 08:54:48 EST 2006
Tim Chase wrote:
> > I seem to be unable to find a way to appends more keys/values to the end
> > of a dictionary... how can I do that?
> >
> > E.g:
> >
> > mydict = {'a':'1'}
> >
> > I need to append 'b':'2' to it to have:
> >
> > mydict = {'a':'1','b':'2'}
>
> my understanding is that the order of a dictionary should never
> be relied upon. To do what you want, you'd use
>
> mydict['b'] = '2'
>
> However, you're just as liable to get
>
> >>> mydict
> {'a':'1','b':'2'}
>
> as you are to get
>
> >>> mydict
> {'b':'2','a':'1'}
>
> To get them in a key-order, my understanding is that you have to
> use something like
>
> keys = mydict.keys()
> sort(keys)
> orderedDict = [(k, mydict[k]) for k in keys]
>
> unless you have a way of doing an in-line sort, in which you
> would be able to do something like
>
> orderedDict = [(k,mydict[k]) for k in mydict.keys().sort()]
>
You can do all this and more from the OrderedDict in pythonutils :
http://www.voidspace.org.uk/python/odict.html
http://www.voidspace.org.uk/python/pythonutils.html
from odict import OrderedDict
our_dict = OrderedDict(some_dict.items())
our_dict.sort()
All the best,
Fuzzyman
http://www.voidspace.org.uk/python/index.shtml
> Unfortunately, the version I've got here doesn't seem to support
> a sort() method for the list returned by keys(). :(
>
> -tim
More information about the Python-list
mailing list