So, a dictionary magically created because you passed something that either was already a dictionary, or used the syntax of dictionary key/value pairs. If you need default values for known keys, you take a default dictionary and override its contents using��http://www.rubydoc.info/stdlib/core/Hash%3Aupdate
In Python I think it's more like the first Ruby alternative, except arguments can be named (so those bypass the left-to-right assignment order)