Dictionaries are one of the most important and versatile data structures in Python. They store data in key-value pairs, allowing for fast access and efficient modification. This tutorial will cover the basics of dictionaries, show you how to use them, and explain how to iterate through them. ## Basics of Dictionaries Dictionaries are defined using curly braces `{}` and allow for the storage of key-value pairs. Unlike lists, which are indexed by a range of numbers, dictionaries are indexed by keys, which can be any immutable type (like strings, numbers, or tuples). ### Creating a Dictionary You can create a dictionary in several ways.
# Creating an empty dictionary dict1 = {} # Creating a dictionary with initial key-value pairs dict2 = { "name": "Alice", "age": 25, "city": "New York" } # Using the dict() constructor dict3 = dict(name="Bob", age=30, city="Los Angeles") print(dict1) print(dict2) print(dict3)
{} {'name': 'Alice', 'age': 25, 'city': 'New York'} {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}
**Explanation:** - `dict1` is initialized as an empty dictionary. - `dict2` and `dict3` are initialized with key-value pairs. ### Accessing Values You can access values in a dictionary using their keys.
person = { "name": "Alice", "age": 25, "city": "New York" } print(person["name"]) print(person.get("age")) # Accessing a non-existing key using get() print(person.get("address", "Address not found"))
Alice 25 Address not found
**Explanation:** - `person["name"]`: Accesses the value associated with the key `"name"`. - `person.get("age")`: Another way to access the value, which is useful if the key might not exist. - `person.get("address", "Address not found")`: Returns "Address not found" instead of raising an error if the key doesn't exist. ### Modifying Values You can modify the values in a dictionary by accessing the keys directly.
person = { "name": "Alice", "age": 25, "city": "New York" } # Modifying existing key person["age"] = 26 # Adding a new key-value pair person["email"] = "[email protected]" print(person)
{'name': 'Alice', 'age': 26, 'city': 'New York', 'email': '[email protected]'}
**Explanation:** - `person["age"] = 26`: Updates the value of the existing key `"age"`. - `person["email"] = "[email protected]"`: Adds a new key-value pair to the dictionary. ### Removing Key-Value Pairs You can remove key-value pairs from a dictionary using the `del` statement or the `pop` method.
person = { "name": "Alice", "age": 25, "city": "New York" } # Removing a key-value pair using del del person["city"] # Removing a key-value pair using pop() email = person.pop("email", "Email not found") print(person) print("Email:", email)
{'name': 'Alice', 'age': 25} Email: Email not found
**Explanation:** - `del person["city"]`: Removes the key-value pair with key `"city"`. - `person.pop("email", "Email not found")`: Removes and returns the value for the key `"email"`. If the key doesn't exist, it returns "Email not found". ## Iterating Through a Dictionary There are several ways to iterate through dictionaries to access keys, values, or key-value pairs. ### Iterating Through Keys
person = { "name": "Alice", "age": 25, "city": "New York" } for key in person: print(key)
name age city
**Explanation:** - This loops through each key in the dictionary `person`. ### Iterating Through Values
person = { "name": "Alice", "age": 25, "city": "New York" } for value in person.values(): print(value)
Alice 25 New York
**Explanation:** - This loops through each value in the dictionary `person` using the `.values()` method. ### Iterating Through Key-Value Pairs
person = { "name": "Alice", "age": 25, "city": "New York" } for key, value in person.items(): print(f"Key: {key}, Value: {value}")
Key: name, Value: Alice Key: age, Value: 25 Key: city, Value: New York
**Explanation:** - This loops through each key-value pair in the dictionary `person` using the `.items()` method. ### Checking for the Existence of Keys You can check if a key exists in the dictionary using the `in` keyword.
person = { "name": "Alice", "age": 25, "city": "New York" } # Check if key exists if "name" in person: print("Name exists in the dictionary.") else: print("Name does not exist in the dictionary.")
Name exists in the dictionary.
**Explanation:** - `if "name" in person`: Checks whether the key `"name"` exists in the dictionary `person`.