I'm running this code from Dive Into Python:
def buildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
if __name__ == "__main__":
myParams = {"server":"mpilgrim", \
"database":"master", \
"uid":"sa", \
"pwd":"secret" \
}
print buildConnectionString(myParams)
The book says its output should be:
server=mpilgrim;uid=sa;database=master;pwd=secret
But when I run it it comes out in reverse:
pwd=secret;database=master;uid=sa;server=mpilgrim
Any ideas why?
';'.join( "%s=%s" % (k, v) for k, , in params.items() )build_connection_stringandmy_params, notbuildConnectionStringandmyParams). Not a requirement, but when working in Python, sticking with PEP8 generally makes life easier.'{0}{1}'.format(k, v)is preferred to%formatting"%s=%s" % (k, v)