How can I add new keys to a dictionary in Python?

How can I add new keys to a dictionary in Python?

You create a new key/value pair on a dictionary by assigning a value to that key

d = {key: value}
print(d)  # {key: value}

d[mynewkey] = mynewvalue

print(d)  # {key: value, mynewkey: mynewvalue}

If the key doesnt exist, its added and points to that value. If it exists, the current value it points to is overwritten.

To add multiple keys simultaneously, use dict.update():

>>> x = {1:2}
>>> print(x)
{1: 2}

>>> d = {3:4, 5:6, 7:8}
>>> x.update(d)
>>> print(x)
{1: 2, 3: 4, 5: 6, 7: 8}

For adding a single key, the accepted answer has less computational overhead.

How can I add new keys to a dictionary in Python?

I feel like consolidating info about Python dictionaries:

Creating an empty dictionary

data = {}
# OR
data = dict()

Creating a dictionary with initial values

data = {a: 1, b: 2, c: 3}
# OR
data = dict(a=1, b=2, c=3)
# OR
data = {k: v for k, v in ((a, 1), (b,2), (c,3))}

Inserting/Updating a single value

data[a] = 1  # Updates if a exists, else adds a
# OR
data.update({a: 1})
# OR
# OR

Inserting/Updating multiple values

data.update({c:3,d:4})  # Updates c and adds d

Python 3.9+:

The update operator |= now works for dictionaries:

data |= {c:3,d:4}

Creating a merged dictionary without modifying originals

data3 = {}
data3.update(data)  # Modifies data3, not data
data3.update(data2)  # Modifies data3, not data2

Python 3.5+:

This uses a new feature called dictionary unpacking.

data = {**data1, **data2, **data3}

Python 3.9+:

The merge operator | now works for dictionaries:

data = data1 | {c:3,d:4}

Deleting items in dictionary

del data[key]  # Removes specific element in a dictionary
data.pop(key)  # Removes the key & returns the value
data.clear()  # Clears entire dictionary

Check if a key is already in dictionary

key in data

Iterate through pairs in a dictionary

for key in data: # Iterates just through the keys, ignoring the values
for key, value in d.items(): # Iterates through the pairs
for key in d.keys(): # Iterates just through key, ignoring the values
for value in d.values(): # Iterates just through value, ignoring the keys

Create a dictionary from two lists

data = dict(zip(list_with_keys, list_with_values))

Leave a Reply

Your email address will not be published. Required fields are marked *