Here is a quick recap of how dictionaries work.
- written with
{}
- changeable, unordered, indexed
- comes with key-pair values & no duplicates
- looks something like this:
pythondictionary = {1: 'python', 2: 'data science', 'third': 'JavaScript'}
Here is every Python Dictionary method available.
Combining dictionaries
To combine two dictionaries, use a leading **
and then add them to a dictionary. Here is an example:
a = {'a':1}
b = {'b':2}
c = {**a, **b}
print(c)
# this will return:
# {'a': 1, 'b': 2}
dict.clear()
To remove all items inside a Python dictionary, use clear()
pythondictionary = { "a":1, "b":2, "c":3 }
print(pythondictionary.clear())
# this will return:
# None
dict.copy()
copy()
will create a shallow copy of the original dictionary.
pythondictionary = { "a":1, "b":2, "c":3 }
c = pythondictionary.copy()
print(c)
# this will return:
# { "a":1, "b":2, "c":3 }
dict.fromkeys()
fromkeys()
lets you create a dictionary from a set of keys stored in a list or tuple. For example:
keys = ("a", "b", "c")
value = [1, 2, 3]
d = dict.fromkeys(keys, value)
print(d)
# this will return:
# {'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [1, 2, 3]}
dict.get()
You can access dictionary attributes with []
like this:
d = { "a":1, "b":2, "c":3 }
print(d["a"])
# this will return:
# 1
However, the safest way to access attributes in a Python dictionary is through using the get()
function. This makes the action explicit. If the attribute doesn’t exist, it will return None
. If you used []
instead of get()
and the value doesn’t exist, you will get a KeyError
instead.
d = { "a":1, "b":2, "c":3 }
print(d.get("a"))
# this will return:
# 1
If you want to get an attribute but not sure if it exists or not, you can also assign your own error value to something like undefined
with get()
. Here is an example:
d = { "a":1, "b":2, "c":3 }
print(d.get("f", "undefined))
# this will return:
# undefined
dict.items()
item()
will return a dictionary’s key and value pairs as a list of tuples. Here is an example:
car = {
"make":"Mitsubishi",
"model":"Lancer",
"year":2007,
"color":"silver"
}
result = car.items()
print(result)
# this will return:
# dict_items([('make', 'Mitsubishi'), ('model', 'Lancer'), ('year', 2007), ('color', 'silver')])
Now you can iterate over the results with a loop like this:
for item in result:
print(item)
# this will return:
# ('make', 'Mitsubishi')
# ('model', 'Lancer')
# ('year', 2007)
# ('color', 'silver')
dict.keys()
Use keys()
if you only need the keys inside a dictionary. For example:
car = {
"make":"Mitsubishi",
"model":"Lancer",
"year":2007,
"color":"silver"
}
for key in car.keys():
print(key)
# this will return:
# make
# model
# year
# color
dict.values()
To only access the values inside a dictionary, use values()
. For example:
car = {
"make":"Mitsubishi",
"model":"Lancer",
"year":2007,
"color":"silver"
}
for value in car.values():
print(value)
# this will return:
# Mitsubishi
# Lancer
# 2007
# silver
dict.pop()
If you want to remove a specific item from a dictionary based on key name, you can use pop()
. For example:
car = {
"make":"Mitsubishi",
"model":"Lancer",
"year":2007,
"color":"silver"
}
car.pop("year")
print(car)
# this will return:
# {'make': 'Mitsubishi', 'model': 'Lancer', 'color': 'silver'}
dict.popitem()
To remove the last item in the dictionary, use popitem()
. For example:
car = {
"make":"Mitsubishi",
"model":"Lancer",
"year":2007,
"color":"silver"
}
car.popitem()
# this will return:
# ('color', 'silver')
print(car)
# this will return:
# {'make': 'Mitsubishi', 'model': 'Lancer', 'year': 2007}
dict.setdefault()
If a key doesn’t exist, it returns None
by default. However, you can set the return value through setdefault()
. For example:
car = {
"make":"Mitsubishi",
"model":"Lancer",
"year":2007,
"color":"silver"
}
print(car.setdefault("origin", "undefined"))
print(car.setdefault("model", "undefined"))
# this will return:
# undefined
# followed by (because the key exists):
# Lancer
dict.update()
To insert an item into a dictionary, use update()
. For example:
car = {
"make":"Mitsubishi",
"model":"Lancer",
"year":2007,
"color":"silver"
}
car.update({"origin":"Japan"})
print(car)
# this will return:
# {'make': 'Mitsubishi', 'model': 'Lancer', 'year': 2007, 'origin': 'Japan'}