Home > Backend Development > Python Tutorial > How Python Dictionaries Keep Your Code Clean and DRY

How Python Dictionaries Keep Your Code Clean and DRY

Patricia Arquette
Release: 2024-10-02 14:10:02
Original
792 people have browsed it

How Python Dictionaries Keep Your Code Clean and DRY

Python Dictionary and the DRY Principle: A Quick Guide for Beginners

Hey there! ? If you’re diving into Python programming, you’ve probably stumbled upon dictionaries and maybe wondered, “What exactly is a dictionary in Python, and how can it help me code smarter?” No worries let’s break it down in a super simple way.

What’s a Dictionary in Python?

Imagine you have a list of items, and each item has a unique label attached to it, like “name: John” or “age: 25”. A dictionary in Python works exactly like that! It’s a collection of key value pairs, where each key is unique and points to a specific value. Think of it as a mini database for storing information in a neat and organized way.

It’s like a real dictionary where you look up a word (the key) and get its meaning (the value). Cool, right? ?

How to Make a Dictionary in Python?

Creating a dictionary is as easy as pie. You just use curly braces {} and separate each key value pair with a colon :.

Here’s how you can make a simple dictionary:

# Creating a dictionary to store student information
student_info = {
    'name': 'John Doe',
    'age': 21,
    'major': 'Computer Science'
}

# Printing out the dictionary
print(student_info)
Copy after login

This dictionary stores a student’s name, age, and major. Notice how the keys like 'name' and 'age' are in quotes? That’s because keys can be strings, numbers, or even tuples! The values can be anything strings, lists, other dictionaries, you name it.

How Dictionaries Help Us to Avoid Repetition (DRY Principle)

Now, here’s where it gets interesting. You may have heard of the DRY principle, which stands for Don’t Repeat Yourself. It’s a rule that encourages you to avoid redundancy in your code. How can dictionaries help with that? Let’s take a look.

Before Using a Dictionary (Repeating Code)

Imagine you want to store information about students in separate variables. It might look something like this:

student1_name = 'Alice'
student1_age = 20
student1_major = 'Mathematics'

student2_name = 'Bob'
student2_age = 22
student2_major = 'Physics'
Copy after login

Not only do we have repetitive variable names, but if we want to print or update these, we have to repeat ourselves again and again. This is where dictionaries can save the day! ?

Example 1: After Using a Dictionary (DRY Version)

With dictionaries, we can store all this information in a cleaner way:

# Using dictionaries to store student data
students = {
    'student1': {'name': 'Alice', 'age': 20, 'major': 'Mathematics'},
    'student2': {'name': 'Bob', 'age': 22, 'major': 'Physics'}
}

print(students['student1']['name'])  # Output: Alice
print(students['student2']['age'])   # Output: 22
Copy after login

Now, you don’t have to create separate variables for each student’s name, age, and major. You can access or update the information in a much simpler way. Plus, it makes your code cleaner and easier to manage.

Example 2: Avoiding Repetition with Dictionaries

Let’s say you want to create a simple grading system based on student scores. Without dictionaries, you might end up writing the following:

# Without dictionary (repeating code)
alice_score = 90
bob_score = 75
charlie_score = 85

if alice_score >= 85:
    print("Alice gets an A")
if bob_score >= 85:
    print("Bob gets an A")
if charlie_score >= 85:
    print("Charlie gets an A")
Copy after login

Here, we’re repeating the if statements and hardcoding each student’s name and score, which violates the DRY principle.

Instead, with a dictionary, you can avoid repetition like this:

# Using a dictionary (DRY principle)
student_scores = {'Alice': 90, 'Bob': 75, 'Charlie': 85}

for student, score in student_scores.items():
    if score >= 85:
        print(f"{student} gets an A")
Copy after login

Now, you have a cleaner, shorter, and more maintainable code! You only write the if statement once, and it works for all students in your dictionary. ?

Useful Dictionary Methods

Dictionaries come with a bunch of built-in methods that make working with them a breeze. Let’s check out a few of them:

  1. .get(): Helps you avoid errors if the key doesn’t exist.
   print(student_info.get('address', 'Address not available'))  
   # Output: Address not available
Copy after login
  1. .keys() and .values(): Get all keys or values in the dictionary.
   print(student_info.keys())  # Output: dict_keys(['name', 'age', 'major'])
   print(student_info.values())  # Output: dict_values(['John Doe', 21, 'Computer Science'])
Copy after login
  1. .items(): Get both keys and values as pairs.
   for key, value in student_info.items():
       print(f'{key}: {value}')
   # Output: 
   # name: John Doe
   # age: 21
   # major: Computer Science
Copy after login
  1. .update(): Update a dictionary with another dictionary or key-value pairs.
   student_info.update({'grade': 'A'})
   print(student_info)  
   # Output: {'name': 'John Doe', 'age': 21, 'major': 'Computer Science', 'grade': 'A'}
Copy after login
  1. .setdefault(): Adds a key with a default value if the key doesn’t exist.
   student_info.setdefault('graduation_year', 2024)
   print(student_info)  
   # Output: {'name': 'John Doe', 'age': 21, 'major': 'Computer Science', 'grade': 'A', 'graduation_year': 2024}
Copy after login

Wrapping Up

Dictionaries are super powerful and can really help you follow the DRY principle in your code. By using dictionaries, you avoid repeating yourself, keep your code organized, and make it easier to read and maintain.

So, the next time you find yourself creating a bunch of similar variables, consider using a dictionary instead. It’ll save you a ton of time and effort, and your future self will thank you! ?

Happy coding! ?

The above is the detailed content of How Python Dictionaries Keep Your Code Clean and DRY. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template