>>> servers = ["srv1.usa", "srv1.lnd"]
>>> proxies = ["proxy1.usa", "proxy1.lnd"]
>>> proxy_map = {}.fromkeys(servers, {}.fromkeys(proxies, {}))
>>> print proxy_map
{'srv1.lnd': {'proxy1.lnd': {}, 'proxy1.usa': {}}, 'srv1.usa': {'proxy1.lnd': {}, 'proxy1.usa': {}}}
>>> proxy_map["srv1.lnd"]["proxy1.lnd"] = {"hosts": "host1.usa"}
>>> print proxy_map
{'srv1.lnd': {'proxy1.lnd': {'hosts': 'host1.usa'}, 'proxy1.usa': {}}, 'srv1.usa': {'proxy1.lnd': {'hosts': 'host1.usa'}, 'proxy1.usa': {}}}
That's my question, why python changed two dictionaries instead of one that I changed? Sorry, if this question is stupid, but I did not found answer for my case. Thank you!