قواميس بايثون: دليل شامل من الأساسيات إلى المتقدم

١. ما هو المصفوفة الترابطية (القاموس) في بايثون؟

المصفوفة الترابطية في بايثون هي بنية بيانات تدير البيانات باستخدام أزواج المفتاح‑القيمة.
عمومًا، ما يُسمى بـ “المصفوفة الترابطية” يُوفر في بايثون كنوع dict.
على سبيل المثال، باستخدام الاسم كمفتاح وتخزين العمر أو المهنة كقيم، يصبح البحث وإدارة البيانات أكثر كفاءة.
هنا، “المفتاح” هو معرف فريد يُستخدم لتحديد البيانات، ويجب أن يكون كل مفتاح فريدًا.

الفروقات بين نوع القاموس وباقي هياكل البيانات

الميزة الأساسية لنوع القاموس هي البحث السريع باستخدام المفاتيح.
مقارنةً بأنواع التسلسل مثل القائمة أو الـ tuple في بايثون، لا تحتاج إلى البحث عن العناصر تسلسليًا؛ يمكنك الوصول مباشرةً عبر المفتاح، مما يحسن سرعة البحث بشكل كبير.
خاصةً عند التعامل مع كميات كبيرة من البيانات أو في السيناريوهات التي يحدث فيها البحث بشكل متكرر، يكون نوع القاموس مفيدًا للغاية.

# Example of a dictionary
person = {
    "name": "Tanaka",
    "age": 30,
    "occupation": "Engineer"
}
print(person["name"])  # Output: Tanaka

٢. كيفية إنشاء قاموس بايثون

في بايثون، يمكنك إنشاء القواميس بطرق متعددة.
يمكنك استخدام الترميز الحرفي، دالة dict()، دالة zip()، إلخ، واختيار الطريقة التي تناسب الموقف.

الطريقة باستخدام الترميزات الحرفية

الترميز الحرفي يستخدم الأقواس المعقوفة {} لإنشاء قاموس، وهو الطريقة الأكثر شيوعًا وبساطة.
استخدام الترميزات الحرفية يتيح لك تعريف المفاتيح والقيم في سطر واحد، مما يسمح بإنشاء القواميس بشكل بديهي.

# Literal notation
fruit_prices = {
    "apple": 100,
    "banana": 150,
    "orange": 200
}

طريقة إنشاء القاموس باستخدام دالة dict()

دالة dict() مفيدة عند إنشاء قاموس من قائمة من tuples، إلخ.
هذه الطريقة مفيدة بشكل خاص عندما تتغير البيانات ديناميكيًا.

# dict function
fruit_prices = dict([("apple", 100), ("banana", 150), ("orange", 200)])

طريقة إنشاء القاموس باستخدام دالة zip()

عند إنشاء قاموس بربط قوائم مختلفة كمفاتيح وقيم، يمكنك تحقيق ذلك باختصار باستخدام دالة zip().
هذا يتيح لك توليد قاموس بكفاءة من القوائم المتطابقة.

# zip function
keys = ["apple", "banana", "orange"]
values = [100, 150, 200]
fruit_prices = dict(zip(keys, values))
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

٣. عمليات القاموس الأساسية

قواميس بايثون هي هياكل بيانات قابلة للتغيير تسمح بإضافة وتحديث وحذف البيانات بمرونة.
كما أنها تتميز بسرعات بحث أسرع مقارنةً بهياكل البيانات الأخرى.

إضافة وتحديث العناصر

لإضافة أو تحديث عنصر في القاموس، ما عليك سوى إسناد قيمة إلى مفتاح محدد.
إسناد قيمة إلى مفتاح موجود يحدثه، بينما تحديد مفتاح جديد يضيف إدخالًا جديدًا.

fruit_prices = {"apple": 100, "banana": 150}
# Add a new element
fruit_prices["orange"] = 200
# Update an existing element
fruit_prices["apple"] = 120

حذف العناصر

عند حذف عنصر بمفتاح محدد، يمكنك استخدام العبارة del أو طريقة pop().
طريقة pop() تُعيد القيمة المحذوفة، وهو مفيد عندما تحتاج إلى الاحتفاظ بالبيانات التي تم إزالتها.

# Deletion using the del statement
del fruit_prices["banana"]
# Deletion using the pop method (returns the deleted value)
removed_price = fruit_prices.pop("orange")

٤. العمليات المتقدمة

استخدام القواميس بطريقة متقدمة يشمل دمجها مع قواميس أخرى وحساب التردد. هذا يتيح معالجة بيانات أكثر تعقيدًا.

دمج القواميس

عند دمج عدة قواميس في واحد، تكون طريقة update() مفيدة. إذا كان هناك مفاتيح مكررة، يتم استبدالها، مما يتيح لك دمج أو تحديث البيانات في خطوة واحدة.

dict1 = {"apple": 100, "banana": 150}
dict2 = {"banana": 200, "grape": 300}
dict1.update(dict2)
# Output: {'apple': 100, 'banana': 200, 'grape': 300}

تطبيق حساب التردد

عدّ التواتر مفيد، على سبيل المثال، عند عدّ عدد المرات التي يظهر فيها كل حرف في سلسلة نصية. استخدام نوع قاموس يجعل تجميع البيانات وتحليلها فعالاً.

text = "apple"
frequency = {}
for char in text:
    if char in frequency:
        frequency[char] += 1
    else:
        frequency[char] = 1
# Output: {'a': 1, 'p': 2, 'l': 1, 'e': 1}
年収訴求

5. التكرار عبر قاموس

التكرار مثالي لمعالجة جميع عناصر قاموس في وقت واحد. هذا يسمح لك بمعالجة المفاتيح والقيم بشكل فردي أو استرجاع قائمة بالبيانات.

الحصول على المفاتيح والقيم باستخدام حلقة

لمعالجة المفاتيح أو القيم أو مزيج منهما في قاموس، يمكنك استخدام الطرق keys() وvalues() وitems().

fruit_prices = {"apple": 100, "banana": 150, "orange": 200}
# Keys only
for key in fruit_prices.keys():
    print(key)
# Values only
for value in fruit_prices.values():
    print(value)
# Key-value pairs
for key, value in fruit_prices.items():
    print(f"The price of {key} is {value} yen")

6. ملخص قواميس Python

تدير قواميس Python (المصفوفات الترابطية) البيانات كأزواج مفتاح-قيمة، مما يحسن بشكل كبير كفاءة البحث والعمليات. بالمقارنة مع القوائم والتوبلز، فإنها توفر عمليات بحث أسرع، مما يجعلها ميزة عند التعامل مع كميات كبيرة من البيانات. كما أنها مناسبة جيداً لتجميع وتحليل البيانات، ولدمجها مع هياكل بيانات أخرى، مما يجعلها أساسية لمعالجة البيانات الأساسية في Python. الإلمام بعمليات القواميس يمكّن من معالجة بيانات أكثر تقدماً.

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール