عند التعامل مع البرمجة باستخدام لغة بايثون، لا يكفي استخدام المتغيرات التقليدية مثل الأعداد أو السلاسل النصية فقط. فغالبًا ما نحتاج إلى التعامل مع كميات كبيرة من البيانات بطريقة منظمة، تسمح لنا بالوصول إليها ومعالجتها بكفاءة. ولتحقيق ذلك، تقدم لنا بايثون مجموعة من هياكل البيانات الأساسية التي تُعتبر أدوات قوية في يد أي مبرمج، وهي: القوائم (Lists)، الصفوف (Tuples)، المجموعات (Sets)، والقواميس (Dictionaries).
سنتناول في هذا المقال كل نوع من هذه الهياكل بالتفصيل، مستعرضين خصائصها، طرق استخدامها، والمواقف التي تكون فيها الخيار الأمثل.
القوائم (Lists): مرونة وتنوع
القائمة هي أكثر أنواع هياكل البيانات استخدامًا في بايثون، وتُمثل مجموعة مرتبة من العناصر التي يمكن تغيير محتواها. يمكن أن تحتوي على أنواع متعددة من البيانات ضمن نفس القائمة، مما يجعلها مرنة للغاية.
كيفية إنشاء قائمة:
my_list = [1, "Ahmed", True, 3.14]
أهم خصائص القوائم:
-
مرتبة (Ordered): العناصر تحتفظ بترتيب الإدخال.
-
قابلة للتعديل (Mutable): يمكن تغيير القيم بعد إنشائها.
-
تقبل التكرار: يمكن إدخال عناصر مكررة.
أهم العمليات التي يمكن القيام بها:
my_list.append("new") # إضافة عنصر في نهاية القائمةmy_list[0] = 99 # تعديل قيمة العنصر الأولdel my_list[2] # حذف العنصر الثالثlength = len(my_list) # الحصول على طول القائمة
متى تستخدم القوائم؟
-
عند الحاجة إلى الاحتفاظ ببيانات مرتبة يمكن تعديلها لاحقًا.
-
عند إنشاء حلقات تكرار أو العمل مع بيانات قابلة للفرز أو الإضافة والحذف بسهولة.
الصفوف (Tuples): الثبات والأمان
الصف يشبه القائمة من حيث إمكانية تخزين مجموعة من العناصر المرتبة، لكنه غير قابل للتعديل. بمجرد إنشائه، لا يمكن تعديل محتواه، مما يجعله مثاليًا لتخزين البيانات الثابتة.
مثال على صف:
coordinates = (34.0, 45.9)user_info = ("Ahmed", 27, "Data Scientist")
أهم خصائص الصفوف:
-
مرتبة: تمامًا كالقوائم، يمكنك الوصول إلى العناصر باستخدام الفهرسة.
-
ثابتة: لا يمكن تعديل أو حذف العناصر.
-
أكثر كفاءة: استخدام أقل للذاكرة، وأداء أفضل في حالات معينة.
مثال وظيفي:
def get_dimensions():return (1920, 1080)
متى نفضل استخدام الصفوف؟
-
عند الرغبة في حماية البيانات من التعديل.
-
عند التعامل مع بيانات مرجعية أو ثابتة، مثل الإحداثيات أو الأبعاد.
المجموعات (Sets): السرعة والتفرد
المجموعة في بايثون هي تجميع غير مرتب من العناصر، ولا تسمح بالتكرار. تُستخدم عندما يكون المهم هو التحقق من الوجود أو تطبيق العمليات الرياضية مثل التقاطع والاتحاد.
إنشاء مجموعة:
my_set = {1, 2, 3, 3, 4}print(my_set) # النتيجة: {1, 2, 3, 4}
أهم الخصائص:
-
غير مرتبة: لا يمكن الاعتماد على ترتيب العناصر.
-
لا تسمح بالتكرار.
-
أداء عالٍ عند البحث أو المقارنة.
أهم العمليات:
my_set.add(5) # إضافة عنصرmy_set.discard(2) # حذف عنصر إن وُجدset1 = {1, 2, 3}set2 = {3, 4, 5}print(set1 | set2) # اتحادprint(set1 & set2) # تقاطعprint(set1 - set2) # فرق
متى تستخدم المجموعات؟
-
عند الحاجة إلى التأكد من عدم وجود عناصر مكررة.
-
عند إجراء عمليات رياضية على البيانات مثل الاتحاد والتقاطع.
القواميس (Dictionaries): التنظيم الذكي
القاموس هو الهيكل الأكثر قوة ومرونة في بايثون. يسمح لك بتخزين البيانات على شكل أزواج من مفتاح وقيمة، وهو مثالي لتنظيم المعلومات بطريقة سهلة وسريعة للوصول.
إنشاء قاموس:
person = {"name": "Ahmed","age": 27,"skills": ["Python", "SQL"]}
الوصول للقيم:
print(person["name"]) # Ahmed
التعديل والإضافة:
person["age"] = 27 # تعديلperson["city"] = "Jeddah" # إضافة مفتاح جديد
التكرار على القاموس:
for key, value in person.items():print(f"{key}: {value}")
متى تستخدم القواميس؟
-
عند الحاجة إلى ربط كل قيمة بمفتاح معرف.
-
مثالية لتخزين بيانات المستخدمين، إعدادات التطبيق، أو أي معلومات منظمة.
تمارين عملية لتثبيت الفهم
-
أنشئ قائمة بـ 5 كتب تحب قراءتها، ثم أضف كتابًا جديدًا واحذف آخر.
-
خزن بيانات يوم ميلادك في صف (يوم، شهر، سنة) واطبع كل جزء على حدة.
-
أنشئ مجموعتين تمثلان مهاراتك التقنية ومهاراتك الشخصية، ثم أوجد المهارات المشتركة.
-
أنشئ قاموس يحتوي على معلومات مشروعك القادم (اسم المشروع، تاريخ البدء، حالة التنفيذ)، ثم أضف مفتاحًا يمثل عدد الأعضاء المشاركين.
هياكل البيانات الأساسية في بايثون ليست مجرد أدوات لحفظ البيانات، بل هي عناصر جوهرية لكتابة كود منظم وفعال. عندما تعرف متى تستخدم كل نوع – قائمة، صف، مجموعة، أو قاموس – ستتمكن من بناء برامج أقوى، أكثر وضوحًا، وأسهل في الصيانة.
هذه المفاهيم تشكل الأساس لكل مشاريع البرمجة، سواء كنت تبني تطبيق ويب، تحلل بيانات، أو حتى تطور ذكاءً اصطناعيًا. إتقانها سيجعلك تفكر كمطور محترف.
تعليقات
إرسال تعليق