«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как словари Python сохраняют ваш код чистым и сухим

Как словари Python сохраняют ваш код чистым и сухим

Опубликовано 6 ноября 2024 г.
Просматривать:835

How Python Dictionaries Keep Your Code Clean and DRY

Словарь Python и принцип DRY: краткое руководство для начинающих

Привет! ? Если вы погружаетесь в программирование на Python, вы, вероятно, натыкались на словари и, возможно, задавались вопросом: «Что такое словарь в Python и как он может помочь мне писать код умнее?» Не беспокойтесь, давайте разберем это очень просто.

Что такое словарь в Python?

Представьте, что у вас есть список элементов, и к каждому элементу прикреплена уникальная метка, например «имя: Джон» или «возраст: 25». Словарь в Python работает именно так! Это коллекция пар ключ-значение, где каждый ключ уникален и указывает на определенное значение. Думайте об этом как о мини-базе данных для аккуратного и организованного хранения информации.

Это похоже на настоящий словарь, в котором вы ищете слово (ключ) и получаете его значение (значение). Круто, правда? ?

Как создать словарь на Python?

Создать словарь проще простого. Вы просто используете фигурные скобки {} и разделяете каждую пару значений ключа двоеточием :.

Вот как можно создать простой словарь:

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

# Printing out the dictionary
print(student_info)

В этом словаре хранятся имя, возраст и специальность студента. Обратите внимание, что такие ключи, как «имя» и «возраст», заключены в кавычки? Это потому, что ключи могут быть строками, числами или даже кортежами! Значениями могут быть любые строки, списки, другие словари, что угодно.

Как словари помогают нам избегать повторов (принцип DRY)

А вот и самое интересное. Возможно, вы слышали о принципе DRY, который означает Не повторяйте себя. Это правило призывает вас избегать избыточности в коде. Как в этом могут помочь словари? Давайте посмотрим.

Перед использованием словаря (повторяющийся код)

Представьте, что вы хотите хранить информацию об учащихся в отдельных переменных. Это может выглядеть примерно так:

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

student2_name = 'Bob'
student2_age = 22
student2_major = 'Physics'

Мало того, что у нас есть повторяющиеся имена переменных, но если мы хотим их распечатать или обновить, нам придется повторяться снова и снова. Вот где словари могут спасти положение! ?

Пример 1: после использования словаря (DRY-версия)

С помощью словарей мы можем хранить всю эту информацию более чистым способом:

# 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

Теперь вам не нужно создавать отдельные переменные для имени, возраста и специальности каждого студента. Вы можете получить доступ к информации или обновить ее гораздо проще. Кроме того, это делает ваш код чище и упрощает управление.

Пример 2. Как избежать повторения с помощью словарей

Предположим, вы хотите создать простую систему оценок, основанную на оценках учащихся. Без словарей вы могли бы написать следующее:

# 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")

Здесь мы повторяем операторы if и жестко кодируем имя и балл каждого учащегося, что нарушает принцип DRY.

Вместо этого с помощью словаря вы можете избежать повторения следующим образом:

# 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")

Теперь у вас есть более чистый, короткий и удобный в сопровождении код! Вы пишете оператор if только один раз, и он работает для всех учащихся в вашем словаре. ?

Полезные словарные методы

Словари имеют множество встроенных методов, которые упрощают работу с ними. Давайте посмотрим на некоторые из них:

  1. .get(): помогает избежать ошибок, если ключ не существует.
   print(student_info.get('address', 'Address not available'))  
   # Output: Address not available
  1. .keys() и .values(): получить все ключи или значения в словаре.
   print(student_info.keys())  # Output: dict_keys(['name', 'age', 'major'])
   print(student_info.values())  # Output: dict_values(['John Doe', 21, 'Computer Science'])
  1. .items(): получите как ключи, так и значения в виде пар.
   for key, value in student_info.items():
       print(f'{key}: {value}')
   # Output: 
   # name: John Doe
   # age: 21
   # major: Computer Science
  1. .update(): Обновите словарь, добавив в него другой словарь или пары ключ-значение.
   student_info.update({'grade': 'A'})
   print(student_info)  
   # Output: {'name': 'John Doe', 'age': 21, 'major': 'Computer Science', 'grade': 'A'}
  1. .setdefault(): добавляет ключ со значением по умолчанию, если ключ не существует.
   student_info.setdefault('graduation_year', 2024)
   print(student_info)  
   # Output: {'name': 'John Doe', 'age': 21, 'major': 'Computer Science', 'grade': 'A', 'graduation_year': 2024}

Подведение итогов

Словари очень мощные и действительно могут помочь вам следовать принципу DRY в вашем коде. Используя словари, вы избегаете повторения, сохраняете порядок в коде и упрощаете его чтение и поддержку.

Итак, в следующий раз, когда вы обнаружите, что создаете кучу похожих переменных, рассмотрите возможность использования словаря. Это сэкономит вам массу времени и усилий, и ваше будущее «я» скажет вам спасибо! ?

Удачного программирования! ?

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/aashwinkumar/how-python-dictionaries-keep-your-code-clean-and-dry-3067?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected] удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3