البرمجة

دليل شامل للقوائم في بايثون

مدخل إلى القوائم في بايثون 3

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

تعريف القوائم في بايثون

القائمة في بايثون هي عبارة عن تسلسل (sequence) يمكن أن يحتوي على عدة عناصر مرتبة. يتم تعريف القائمة باستخدام الأقواس المربعة []، وتفصل العناصر داخل القائمة بواسطة الفاصلة. إليك مثالاً بسيطاً على كيفية تعريف قائمة في بايثون:

python
my_list = [1, 2, 3, 4, 5]

في هذا المثال، تحتوي القائمة my_list على خمس عناصر: الأعداد الصحيحة من 1 إلى 5. القوائم في بايثون يمكن أن تحتوي على أي نوع من البيانات، بما في ذلك الأرقام، السلاسل النصية، والقوائم الأخرى. كما يمكن أن تحتوي على بيانات مختلطة.

python
mixed_list = [1, "hello", 3.14, [1, 2, 3]]

خصائص القوائم في بايثون

  1. الترتيب (Order): القوائم في بايثون تحتوي على ترتيب ثابت للعناصر. بمعنى آخر، تحتفظ القوائم بالترتيب الذي تم إدخال العناصر فيه، ويمكن الوصول إلى كل عنصر عن طريق الفهرس (index).

  2. التغيير (Mutability): القوائم قابلة للتغيير. يمكن تعديل عناصر القائمة بعد إنشائها بإضافة أو حذف أو تعديل العناصر.

  3. القدرة على التكرار (Iterable): يمكن تكرار القوائم باستخدام الحلقات مثل for أو while للوصول إلى جميع العناصر.

  4. الأنواع المتعددة: كما ذكرنا سابقًا، يمكن أن تحتوي القوائم على أنواع بيانات متعددة. يمكن أن تحتوي القائمة على أعداد صحيحة ونصوص وقوائم أخرى في نفس الوقت.

الوصول إلى عناصر القائمة

تتمثل الطريقة الأساسية للوصول إلى عناصر القائمة في بايثون باستخدام الفهارس. الفهرس يبدأ من الصفر، مما يعني أن العنصر الأول في القائمة له فهرس 0، والعنصر الثاني له فهرس 1، وهكذا. يمكن أيضًا استخدام الفهارس السلبية للوصول إلى العناصر بدءًا من نهاية القائمة.

python
my_list = [10, 20, 30, 40, 50] print(my_list[0]) # إخراج 10 print(my_list[-1]) # إخراج 50

تعديل القوائم في بايثون

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

1. إضافة عناصر إلى القائمة

  • إضافة عنصر إلى نهاية القائمة:
    يمكن استخدام طريقة append() لإضافة عنصر واحد إلى نهاية القائمة.

    python
    my_list = [1, 2, 3] my_list.append(4) print(my_list) # إخراج [1, 2, 3, 4]
  • إضافة عناصر متعددة باستخدام extend():
    إذا كنت ترغب في إضافة مجموعة من العناصر إلى القائمة، يمكنك استخدام extend().

    python
    my_list = [1, 2, 3] my_list.extend([4, 5, 6]) print(my_list) # إخراج [1, 2, 3, 4, 5, 6]
  • إضافة عنصر في مكان معين باستخدام insert():
    يمكن استخدام insert() لإضافة عنصر في فهرس معين من القائمة.

    python
    my_list = [1, 2, 3] my_list.insert(1, "hello") print(my_list) # إخراج [1, 'hello', 2, 3]

2. حذف عناصر من القائمة

  • حذف العنصر الأخير باستخدام pop():
    تُستخدم pop() لحذف العنصر الأخير من القائمة، ويمكنك تخزين العنصر المحذوف في متغير.

    python
    my_list = [1, 2, 3] last_item = my_list.pop() print(my_list) # إخراج [1, 2] print(last_item) # إخراج 3
  • حذف عنصر باستخدام remove():
    لحذف أول ظهور لعنصر معين في القائمة، يتم استخدام remove().

    python
    my_list = [1, 2, 3, 2] my_list.remove(2) print(my_list) # إخراج [1, 3, 2]
  • حذف عنصر من فهرس معين باستخدام del:
    يمكن استخدام del لحذف عنصر في فهرس معين.

    python
    my_list = [1, 2, 3] del my_list[1] print(my_list) # إخراج [1, 3]

3. تعديل عناصر في القائمة

يمكنك تعديل عناصر موجودة في القائمة ببساطة عن طريق الوصول إليها باستخدام الفهرس وتعيين قيمة جديدة لها.

python
my_list = [1, 2, 3] my_list[1] = 10 print(my_list) # إخراج [1, 10, 3]

العمليات على القوائم

بايثون يوفر العديد من العمليات التي يمكن تطبيقها على القوائم. من أبرز هذه العمليات:

  1. الدمج (Concatenation): يمكن دمج قائمتين باستخدام عامل الجمع +.

    python
    list1 = [1, 2, 3] list2 = [4, 5, 6] combined_list = list1 + list2 print(combined_list) # إخراج [1, 2, 3, 4, 5, 6]
  2. التكرار (Repetition): يمكن تكرار القائمة باستخدام عامل الضرب *.

    python
    list1 = [1, 2, 3] repeated_list = list1 * 3 print(repeated_list) # إخراج [1, 2, 3, 1, 2, 3, 1, 2, 3]
  3. التحقق من وجود عنصر (Membership): يمكن التحقق مما إذا كان العنصر موجودًا في القائمة باستخدام الكلمة المفتاحية in.

    python
    my_list = [1, 2, 3, 4] print(3 in my_list) # إخراج True print(5 in my_list) # إخراج False
  4. الطول (Length): يمكن معرفة عدد العناصر في القائمة باستخدام الدالة len().

    python
    my_list = [1, 2, 3] print(len(my_list)) # إخراج 3
  5. الترتيب (Sorting): يمكن ترتيب العناصر في القائمة باستخدام sort()، وتُنفذ هذه العملية في مكانها دون إنشاء قائمة جديدة.

    python
    my_list = [3, 1, 4, 2] my_list.sort() print(my_list) # إخراج [1, 2, 3, 4]
  6. الانعكاس (Reversing): يمكن عكس ترتيب العناصر في القائمة باستخدام reverse().

    python
    my_list = [1, 2, 3, 4] my_list.reverse() print(my_list) # إخراج [4, 3, 2, 1]

القوائم المتداخلة

القوائم في بايثون يمكن أن تحتوي على قوائم أخرى داخلها، وهذا يُعرف بالقوائم المتداخلة (Nested Lists). القوائم المتداخلة تمكّن المبرمج من إنشاء هيكل بيانات معقد يحتوي على هياكل بيانات أخرى.

python
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(nested_list[0]) # إخراج [1, 2, 3] print(nested_list[1][2]) # إخراج 6

القوائم والمصفوفات

على الرغم من أن القوائم في بايثون تقدم مرونة كبيرة، إلا أنها ليست دائمًا مثالية عند التعامل مع بيانات كبيرة الحجم أو العمليات الرياضية المكثفة. في هذه الحالة، يمكن استخدام المصفوفات (Arrays) من مكتبة numpy التي تعتبر أكثر كفاءة من القوائم في التعامل مع الأعداد والحسابات الرياضية.

الخلاصة

القوائم في بايثون هي أداة قوية ومرنة يمكن استخدامها في العديد من التطبيقات البرمجية. تقدم القوائم إمكانيات واسعة لتخ