pythondictionarylookup

Why dict.get(key) instead of dict[key]?


I came across the dict method get which, given a key in the dictionary, returns the associated value.

For what purpose is this function useful? If I wanted to find a value associated with a key in a dictionary, I can just do dict[key], and it returns the same thing:

dictionary = {"Name": "Harry", "Age": 17}
dictionary["Name"] == dictionary.get("Name")      # True

See also: Return a default value if a dictionary key is not available


Solution

  • It allows you to provide a default value if the key is missing:

    dictionary.get("bogus", default_value)
    

    returns default_value (whatever you choose it to be), whereas

    dictionary["bogus"]
    

    would raise a KeyError.

    If omitted, default_value is None, such that

    dictionary.get("bogus")  # <-- No default specified -- defaults to None
    

    returns None just like

    dictionary.get("bogus", None)
    

    would.