Dave Angel wrote: > On 03/01/2013 02:48 PM, Huperetes wrote: > > I am getting the following for my installation. > > > > Why is this happening, and how do I get it to work properly (returning > > element 0 - n, versus n - 0)? > > > > Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] > > on win32 > > Type "help", "copyright", "credits" or "license" for more information. > > > >>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", > > "pwd":"secret"} > >>>> ["%s=%s" % (k, v) for k, v in params.items()] > > > > ['pwd=secret', 'database=master', 'uid=sa', 'server=mpilgrim'] > > > >>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()]) > > > > 'pwd=secret;database=master;uid=sa;server=mpilgrim' > > > >>>> > > > > A dict has by specification no specific ordering. If you want the data > sorted, then sort the data after extracting it. Or use some other type. > > >>>> ["%s=%s" % (k, v) for k, v in sorted(params.items())] > > the only ordering guarantee that you get from dict is that if you > iterate over it twice with no changes to the dict in the meantime, > you'll get the same ordering. But what that ordering is, is undefined. > It's certainly not the order that things were entered into the dict. > >
In Python 2.7+, OP can also try using an OrderedDict[0]. "When iterating over an ordered dictionary, the items are returned in the order their keys were first added." Note, that updating a key will NOT change the order, so you must remove the key/value pair and then re-add it to change the ordering. Ramit [0] http://docs.python.org/2/library/collections.html#collections.OrderedDict This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor