In Python a dictionary can be created with an expression in curly brackets. But the dict
built-in method can also be used. This provides more initialization options.
With dict
, we create an empty dictionary. We create a dictionary from another dictionary (copying it). We create one from a list.
Here we create an empty dictionary with dict()
. No keys or values are inside the dictionary. Its len
is 0.
get()
to print this value.# Use dict to create empty dictionary. values = dict() # Add value and get value. values["cat"] = 1 print(values.get("cat"))1
Here we copy a dictionary with dict
. We create a dictionary called values and then copy it into a dictionary called "copy."
values = {"cat": 1, "bird": 2} # Copy the dictionary with the dict copy constructor. copy = dict(values) # Change copy. copy["cat"] = 400 # The two dictionaries are separate. print(values) print(copy){'bird': 2, 'cat': 1} {'bird': 2, 'cat': 400}
List
, dict
A list of tuples (each a key-value pair) can be used to construct a dictionary. Dict turns these pairs into keys and values. This is a way to transform a list into a dictionary.
# Create a dictionary with dict based on a list of pairs. # ... List contains tuples with keys and values. values = [("cat", 1), ("bird", 200)] lookup = dict(values) print(values) print(lookup.get("cat")) print(lookup.get("bird"))[('cat', 1), ('bird', 200)] 1 200
Python supports named arguments. In this syntax, arguments are passed with an equals sign statement. A dictionary can be constructed with this syntax.
# Create a dictionary with named arguments. animals = dict(bird=1, dog=2, fish=9) print(animals.get("bird")) print(animals.get("dog")) print(animals.get("fish"))1 2 9
TypeError
The dict
keyword must not be incorrectly used. If we provide incorrect arguments, a TypeError
will interrupt our program's execution.
# The dict built-in must be called with a valid argument. result = dict(1)Traceback (most recent call last): File "C:\programs\file.py", line 5, in <module> result = dict(1) TypeError: 'int' object is not iterable
Dictionary
copyWe can invoke the copy()
method on a dictionary to perform a copy. This has the same result as using the dict
built-in method.
With this function, we create a powerful dictionary collection from varied arguments. Often with dictionaries we do not need a dict()
call. But when we do, dict
simplifies our code.