[Tutor] Reversed dictionary returned by default

Brad Hudson brad.hudson at gmail.com
Fri Mar 1 21:07:58 CET 2013


> 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']
>
Dictionaries are unordered, which is why you got the output above
(converted from a dict to a list).

>>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])
>
> 'pwd=secret;database=master;uid=sa;server=mpilgrim'
>

example when 'sorted':
>>> 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']
>>> ['%s=%s' % (k, v) for k, v in (sorted(params.items()))]
['database=master', 'pwd=secret', 'server=mpilgrim', 'uid=sa']
>>>


More information about the Tutor mailing list