Python 辞書がコードをクリーンかつドライに保つ方法

Patricia Arquette
リリース: 2024-10-02 14:10:02
オリジナル
725 人が閲覧しました

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 原則 について聞いたことがあるかもしれません。これは Don'trepeat Yourself の略です。これは、コード内の冗長性を避けることを奨励するルールです。辞書はそれをどのように助けることができるでしょうか?見てみましょう。

辞書を使用する前に(コードの繰り返し)

学生に関する情報を別の変数に保存したいと想像してください。次のようになります:

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 回記述するだけで、辞書内のすべての生徒に適用されます。 ?

便利な辞書メソッド

辞書には、辞書の操作を簡単にする多くの組み込みメソッドが付属しています。いくつかをチェックしてみましょう:

  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 原則に従うのに非常に役立ちます。辞書を使用すると、同じ作業の繰り返しを避け、コードを整理して、読みやすく、保守しやすくなります。

そのため、次回同じような変数を大量に作成することになった場合は、代わりに辞書を使用することを検討してください。時間と労力を大幅に節約できるので、未来の自分はあなたに感謝するでしょう。 ?

コーディングを楽しんでください! ?

以上がPython 辞書がコードをクリーンかつドライに保つ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!