「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python 辞書がコードをクリーンかつドライに保つ方法

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

2024 年 11 月 6 日に公開
ブラウズ:267

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

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

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

リリースステートメント この記事は次の場所に転載されています: https://dev.to/aashwinkumar/how-python-dictionaries-keep-your-code-clean-and-dry-3067?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3