Python Dictionaries

JK JK 2038 
Created at
Updated at  
7,126 0 0

Dictionaries are used to store data values in key:value pairs.

A dictionary is a collection which is ordered*, changeable and do not allow duplicates.

Dictionaries are written with curly brackets, and have keys and values:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict)

Dictionary Items

Dictionary items are ordered, changeable, and does not allow duplicates.

Dictionary items are presented in key:value pairs, and can be referred to by using the key name.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict["brand"])

Ordered or Unordered?

When we say that dictionaries are ordered, it means that the items have a defined order, and that order will not change.

Unordered means that the items does not have a defined order, you cannot refer to an item by using an index.


Changeable

Dictionaries are changeable, meaning that we can change, add or remove items after the dictionary has been created.


Duplicates Not Allowed

Dictionaries cannot have two items with the same key:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964,
  "year": 2020
}
print(thisdict)

Dictionary Length

To determine how many items a dictionary has, use the len() function:

print(len(thisdict))

Dictionary Items - Data Types

The values in dictionary items can be of any data type:

thisdict = {
  "brand": "Ford",
  "electric": False,
  "year": 1964,
  "colors": ["red", "white", "blue"]
}

type()

From Python's perspective, dictionaries are defined as objects with the data type 'dict':

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(type(thisdict))

The dict() Constructor

It is also possible to use the dict() constructor to make a dictionary.

thisdict = dict(name = "John", age = 36, country = "Norway")
print(thisdict)

Accessing Items

You can access the items of a dictionary by referring to its key name, inside square brackets:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
x = thisdict["model"]

There is also a method called get() that will give you the same result:

x = thisdict.get("model")

Get Keys

The keys() method will return a list of all the keys in the dictionary.

x = thisdict.keys()

The list of the keys is a view of the dictionary, meaning that any changes done to the dictionary will be reflected in the keys list.

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

x = car.keys()

print(x) #before the change

car["color"] = "white"

print(x) #after the change

Get Values

The values() method will return a list of all the values in the dictionary.

x = thisdict.values()

The list of the values is a view of the dictionary, meaning that any changes done to the dictionary will be reflected in the values list.

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

x = car.values()

print(x) #before the change

car["year"] = 2020

print(x) #after the change

Add a new item to the original dictionary, and see that the values list gets updated as well:

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

x = car.values()

print(x) #before the change

car["color"] = "red"

print(x) #after the change

Get Items

The items() method will return each item in a dictionary, as tuples in a list.

x = thisdict.items()

The returned list is a view of the items of the dictionary, meaning that any changes done to the dictionary will be reflected in the items list.

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

x = car.items()

print(x) #before the change

car["year"] = 2020

print(x) #after the change

Add a new item to the original dictionary, and see that the items list gets updated as well:

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

x = car.items()

print(x) #before the change

car["color"] = "red"

print(x) #after the change

Check if Key Exists

To determine if a specified key is present in a dictionary use the in keyword:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
if "model" in thisdict:
  print("Yes, 'model' is one of the keys in the thisdict dictionary")

Change Values

You can change the value of a specific item by referring to its key name:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["year"] = 2018

Update Dictionary

The update() method will update the dictionary with the items from the given argument.

The argument must be a dictionary, or an iterable object with key:value pairs.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.update({"year": 2020})

Adding Items

Adding an item to the dictionary is done by using a new index key and assigning a value to it:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["color"] = "red"
print(thisdict)

Update Dictionary

The update() method will update the dictionary with the items from a given argument. If the item does not exist, the item will be added.

The argument must be a dictionary, or an iterable object with key:value pairs.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.update({"color": "red"})

Removing Items

There are several methods to remove items from a dictionary:

The pop() method removes the item with the specified key name:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.pop("model")
print(thisdict)

The popitem() method removes the last inserted item (in versions before 3.7, a random item is removed instead):

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.popitem()
print(thisdict)

The del keyword removes the item with the specified key name:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
del thisdict["model"]
print(thisdict)

The clear() method empties the dictionary:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.clear()
print(thisdict)

Loop Through a Dictionary

You can loop through a dictionary by using a for loop.

When looping through a dictionary, the return value are the keys of the dictionary, but there are methods to return the values as well.

for x in thisdict:
  print(x)
for x in thisdict:
  print(thisdict[x])
for x in thisdict.values():
  print(x)
for x in thisdict.keys():
  print(x)
for x, y in thisdict.items():
  print(x, y)

Copy a Dictionary

You cannot copy a dictionary simply by typing dict2 = dict1, because: dict2 will only be a reference to dict1, and changes made in dict1 will automatically also be made in dict2.

There are ways to make a copy, one way is to use the built-in Dictionary method copy().

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = thisdict.copy()
print(mydict)
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = dict(thisdict)
print(mydict)

Nested Dictionaries

A dictionary can contain dictionaries, this is called nested dictionaries.

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
}

Or, if you want to add three dictionaries into a new dictionary:

child1 = {
  "name" : "Emil",
  "year" : 2004
}
child2 = {
  "name" : "Tobias",
  "year" : 2007
}
child3 = {
  "name" : "Linus",
  "year" : 2011
}

myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

 

Access Items in Nested Dictionaries

To access items from a nested dictionary, you use the name of the dictionaries, starting with the outer dictionary:

print(myfamily["child2"]["name"])

Dictionary Methods

Python has a set of built-in methods that you can use on dictionaries.

MethodDescription
clear()Removes all the elements from the dictionary
copy()Returns a copy of the dictionary
fromkeys()Returns a dictionary with the specified keys and value
get()Returns the value of the specified key
items()Returns a list containing a tuple for each key value pair
keys()Returns a list containing the dictionary's keys
pop()Removes the element with the specified key
popitem()Removes the last inserted key-value pair
setdefault()Returns the value of the specified key. If the key does not exist: insert the key, with the specified value
update()Updates the dictionary with the specified key-value pairs
values()Returns a list of all the values in the dictionary

 

Below YouTube content is helpful for better understanding:

 

Tags Python Python Dictionaries Facebook X
Comments 0
Similar posts
  1. Python Sets
    7,147
  2. Python Tuples
    7,245
  3. Python Conditions and If statements
    7,170
  4. Python Comparison Operators
    7,321
  5. Python Arithmetic Operators
    7,122
  6. Printing string n times
    7,104
  7. String concatenation by join()
    7,172
  8. Python Lists
    7,428
  9. Python String Operations
    7,512
  10. Python While Loops/For Loops
    7,590
  11. Python Data Types
    7,525
  12. Python Functions
    7,106
  13. Python Variables
    7,489
  14. Python Comments
    7,649
  15. Python Lambda
    7,155
  16. Python Arrays
    7,141
  17. Python Syntax
    7,475
  18. Python Classes/Objects
    7,555
  19. Python Getting Started
    7,542
  20. Python Introduction
    7,149
  21. Python Inheritance
    7,252
  22. What is Python?
    7,797
  23. Python Iterators
    7,159
  24. Python Polymorphism
    7,134
  25. Python Scope
    7,109
  26. Python Modules
    7,162
  27. Code Chronicles - A Caffeine-Fueled Journey into Data Software Engineering
    7,441
  28. Machine Learning Types and Programming Languages
    7,311
  29. Python Tutorials for AP Computer Science Principles, Data Projects and High School Internship
    8,024
  30. Mastering Excel Data Manipulation with Python
    7,130
  31. Challenge: One Code Problem Per Day
    1,227
  32. Clean Python Environments: The Power of venv vs. Docker
    1,032
  1. How to Build Llama 3 AI Apps with Python: Setup & User Prompts
    990
  2. Try...Catch Helps Ignoring Data Type Miss-Match Error in Python
    9,428
  3. RegExp example in Python to exclude javascript from HTML code
    7,102
  4. Python code to convert from Lunar to Solar
    7,838
  5. Python example to download webpage
    8,779
Recently updated
  1. Comprehensive Guide to Recent Critical PHP Vulnerabilities
    420
  2. How to Check Your UIUC Graduation Progress Using DARS Audit
    377
  3. Michael Jackson's Billie Jean
    329
  4. Meet A2O Lite: Korea's Newest K-Pop Cuties with Addictively Catchy Melodies
    194
  5. Why You Can't Stop Watching Jack Bryan's Beatbox Gaming Shorts
    221
  6. Song So-hee: The Soulful Voice Touching Hearts Through Korean Music
    261
  7. Watch This Dazzling Dancer’s Mind-Blowing Moves
    276
  8. Bootstrap vs. Tailwind CSS: Origins, Features, Pros & Cons, and How to Choose the Right Framework
    315
  9. The Complete Guide to Golang: History, Features, Real-World Uses, and Code Examples
    948
  10. Telemetry vs. Analytics: Understanding the Difference and Why It Matters
    453
  11. The Evolution and Production Reality of Agentic AI
    364
  12. How to Activate or Waive Your UIUC Student Health Insurance
    457
  13. Complete Guide to Building a Machine Learning Model
    477
  14. My life cuts at Las Vegas during Thanksgiving day holiday
    7,562
  15. The Cybercab Transformation: From Autonomous Taxi to Mobile Base Station
    505
  16. Harness vs. OpenClaw: Two Very Different "Agents"
    1,232
  17. What is Docker? Why is Docker also useful in a development environment?
    755
  18. UIUC 2026-2027 Academic Calendar
    1,871
  19. Open-Source LLMs: The AI Revolution
    920
  20. Resume 2.0: Leveling Up for My First Software Gig
    2,685
  21. Not everyone will understand what this man just did
    2,225
  22. UIUC Dorm Guide: Find Your Perfect Fit !!
    1,770
  23. Unpacking IU's Shopper
    927
  24. Jackie Chan's Police Story: The Action Masterpiece
    800
  25. The IVE Story: Identity, 'I AM' Charts, and Influence
    1,115
  26. Tech Visionaries who graduated at UIUC - You are the Next Turn
    1,329
  27. Open Databases for Sex Crime Occurrences in the U.S.
    886
  28. Automatically copy text to the clipboard when dragging the mouse in the Cursor
    3,094
  29. My First Day at University of Illinois-Urvana Champaign
    1,322
  30. Sand, Sea, and a Splash of Fun at Newport Beach: A Family Adventure
    8,330
  31. Sun, Rocks, and Adventure: A Day at Joshua Tree National Park
    8,416
  32. Sipping the Stars: My Starbucks Adventure
    9,957
  33. Exciting explore at Sequoia National Park
    7,817
  34. My Life Shot at Death Valley
    1,938
  35. Ip Man fights with Muay Thai Master
    1,083
  36. Mad Clown - Don't Die
    1,197
  37. How to get Student Enrollment and Degree Verification at UIUC
    5,446
  38. LAX Thanksgiving Rush: A Joyful Reunion
    1,039
  39. ZO ZAZZ(조째즈) - Don`t you know (모르시나요) (PROD.ROCOBERRY)
    1,286
  40. FISHINGIRLS Unleashes Energetic EP 'Funiverse' Featuring Signature Track 'Fishing King'
    1,111
  41. 10CM - To Reach You (너에게 닿기를)
    1,293
  42. Feeling weak? Transform yourself at the UIUC ARC!
    1,697
  43. BOYNEXTDOOR - If I Say I Love You
    1,318
  44. The Future of Software Engineer - AI Engineering
    1,047
  45. G Dragon x Taeyang (Eyes Nose Lips, Power, Home Sweet Home, GOOD BOY) - LE GALA PIÈCES JAUNES 2025
    1,047
  46. Lie - Legend song by BIGBANG
    7,945
  47. Why ROLLBACK is useful when you work with Google Gemini CLI?
    1,015
  48. Reimbursement after Vaccination at McKinley Health Center
    1,154
  49. Gemini CLI makes a Magic! Time to speed up your app development with Google Gemini CLI!
    1,089
  50. Common Questions from UIUC school life in terms of CS Program
    1,275