أساسيات بايثون 8: شرح القوائم Lists في Python مع أمثلة للمبتدئين

أساسيات بايثون 8: شرح القوائم Lists في Python للمبتدئين

إذا لم تقرأ الدرس السابق، يمكنك الرجوع إلى: أساسيات بايثون 7: أنواع البيانات


في الدروس السابقة من سلسلة أساسيات بايثون تعرفنا على أشياء مهمة مثل المتغيرات، التعليقات، العمليات الحسابية، وأنواع البيانات.

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

القوائم Lists

القائمة في بايثون تساعدك على تخزين أكثر من قيمة داخل متغير واحد، بدل ما تنشئ متغير لكل قيمة.

تخيل أنك تريد تخزين أسماء مجموعة طلاب. بدل ما تكتب:

student1 = "Ahmed"
student2 = "Sara"
student3 = "Omar"

يمكنك وضعهم داخل قائمة واحدة بهذا الشكل:

students = ["Ahmed", "Sara", "Omar"]

وهنا تبدأ فائدة القوائم.

ما هي القائمة List في بايثون؟

القائمة في بايثون هي نوع من أنواع البيانات يُستخدم لتخزين مجموعة من القيم داخل متغير واحد.

ويتم إنشاء القائمة باستخدام الأقواس المربعة:

[]

مثال:

fruits = ["Apple", "Banana", "Orange"]
print(fruits)

الناتج:

['Apple', 'Banana', 'Orange']

في المثال السابق أنشأنا قائمة اسمها fruits، ووضعنا داخلها ثلاثة عناصر.

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

لماذا نستخدم القوائم؟

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

مثلاً:

names = ["Ali", "Mona", "Khaled"]

أو:

numbers = [10, 20, 30, 40]

أو:

products = ["Laptop", "Mouse", "Keyboard"]

بدل ما يكون عندك عشرات المتغيرات، يمكنك جمع البيانات المتشابهة داخل قائمة واحدة.

إنشاء قائمة في بايثون

لإنشاء قائمة نكتب اسم المتغير، ثم علامة يساوي، ثم العناصر داخل أقواس مربعة:

colors = ["Red", "Green", "Blue"]

يمكن أيضًا إنشاء قائمة أرقام:

numbers = [1, 2, 3, 4, 5]

وقائمة تحتوي على أنواع بيانات مختلفة:

person = ["Ahmed", 25, True]

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

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

كل عنصر داخل القائمة له رقم خاص يسمى Index.

لكن انتبه:

في بايثون العد يبدأ من الصفر، وليس من الرقم واحد.

مثال:

fruits = ["Apple", "Banana", "Orange"]

print(fruits[0])
print(fruits[1])
print(fruits[2])

الناتج:

Apple
Banana
Orange

العنصر الأول رقمه 0، والعنصر الثاني رقمه 1، والعنصر الثالث رقمه 2.

وهذه نقطة مهمة جدًا للمبتدئين.

مثال بسيط على Index

languages = ["Python", "Java", "C++"]

print(languages[0])

الناتج:

Python

لأن كلمة Python هي أول عنصر في القائمة، ورقمها هو 0.

الوصول إلى آخر عنصر في القائمة

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

مثال:

fruits = ["Apple", "Banana", "Orange"]

print(fruits[-1])
الناتج:
Orange

الرقم -1 يعني آخر عنصر في القائمة.

مثال آخر:

print(fruits[-2])
Banana

تعديل عنصر داخل القائمة

القوائم في بايثون قابلة للتعديل، يعني يمكنك تغيير قيمة عنصر داخل القائمة بعد إنشائها.

مثال:

fruits = ["Apple", "Banana", "Orange"]

fruits[1] = "Mango"

print(fruits)
الناتج:
['Apple', 'Mango', 'Orange']
هنا قمنا بتغيير العنصر الثاني من Banana إلى Mango.

إضافة عنصر جديد إلى القائمة

لإضافة عنصر جديد في نهاية القائمة نستخدم الدالة:

append()
مثال:
fruits = ["Apple", "Banana"] fruits.append("Orange") print(fruits)
الناتج:
['Apple', 'Banana', 'Orange']

الدالة ()append تضيف العنصر في نهاية القائمة.

إضافة عنصر في مكان محدد

إذا أردت إضافة عنصر في مكان معين داخل القائمة، نستخدم:

insert()
مثال:
fruits = ["Apple", "Orange"] fruits.insert(1, "Banana") print(fruits)
الناتج:
['Apple', 'Banana', 'Orange']

في هذا المثال أضفنا Banana في المكان رقم 1.

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

لحذف عنصر من القائمة يمكننا استخدام:

remove()
مثال:
fruits = ["Apple", "Banana", "Orange"] fruits.remove("Banana") print(fruits)
الناتج:
['Apple', 'Orange']

الدالة remove() تحذف العنصر حسب قيمته.

حذف عنصر باستخدام رقمه

إذا أردت حذف عنصر حسب رقمه داخل القائمة، يمكنك استخدام:

pop()
مثال:
fruits = ["Apple", "Banana", "Orange"] fruits.pop(1) print(fruits)
الناتج:
['Apple', 'Orange']

هنا حذفنا العنصر الذي رقمه 1، وهو Banana.

وإذا استخدمت pop() بدون رقم، سيتم حذف آخر عنصر:

fruits = ["Apple", "Banana", "Orange"] fruits.pop() print(fruits)
الناتج:
['Apple', 'Banana']

معرفة عدد عناصر القائمة

لمعرفة عدد العناصر داخل القائمة نستخدم الدالة:

len()
مثال:
fruits = ["Apple", "Banana", "Orange"] print(len(fruits))
الناتج:
3

لأن القائمة تحتوي على ثلاثة عناصر.

التحقق هل عنصر موجود داخل القائمة

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

in
مثال:
fruits = ["Apple", "Banana", "Orange"] print("Banana" in fruits)
الناتج:
True

لأن Banana موجودة داخل القائمة.

مثال آخر:

print("Mango" in fruits)
الناتج:
False

لأن Mango غير موجودة داخل القائمة.

المرور على عناصر القائمة باستخدام for

يمكننا المرور على كل عناصر القائمة باستخدام حلقة for.

لا تقلق إذا لم تفهم الحلقات بشكل كامل الآن، سنتحدث عنها لاحقًا في السلسلة، لكن خذ هذا المثال البسيط:

fruits = ["Apple", "Banana", "Orange"] for fruit in fruits: print(fruit)
الناتج:
Apple Banana Orange

هنا بايثون مرّ على كل عنصر داخل القائمة وطبعه.

ترتيب عناصر القائمة

إذا كانت لدينا قائمة أرقام أو كلمات، يمكننا ترتيبها باستخدام:

sort()
مثال:
numbers = [5, 2, 9, 1] numbers.sort() print(numbers)
الناتج:
[1, 2, 5, 9]
ومثال مع الكلمات:
names = ["Omar", "Ali", "Sara"] names.sort() print(names)
الناتج:
['Ali', 'Omar', 'Sara']
بايثون توفر مجموعة من الدوال الجاهزة للتعامل مع القوائم مثل ()append و()insert و()remove و()pop و()sort وغيرها. 

عكس ترتيب القائمة

لعكس ترتيب عناصر القائمة نستخدم:

reverse()
مثال:
numbers = [1, 2, 3, 4] numbers.reverse() print(numbers)
الناتج:
[4, 3, 2, 1]

نسخ قائمة في بايثون

قد تعتقد أن نسخ القائمة يكون بهذا الشكل:

list1 = [1, 2, 3] list2 = list1

لكن هذا لا ينشئ نسخة مستقلة تمامًا، بل يجعل المتغيرين يشيران إلى نفس القائمة.

لنسخ القائمة بطريقة أفضل نستخدم:

copy()
مثال:
list1 = [1, 2, 3]
list2 = list1.copy()

print(list2)

الناتج:

[1, 2, 3]

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

لننشئ برنامجًا بسيطًا يحتوي على قائمة أسماء طلاب:

students = ["Ahmed", "Sara", "Omar"]
students.append("Mona")
print("قائمة الطلاب:")
print(students)
print("عدد الطلاب:")
print(len(students))

الناتج:

قائمة الطلاب: ['Ahmed', 'Sara', 'Omar', 'Mona'] عدد الطلاب: 4

في هذا المثال قمنا بإنشاء قائمة، ثم أضفنا طالبًا جديدًا، ثم طبعنا عدد الطلاب.

خطأ شائع عند استخدام القوائم

من أشهر الأخطاء التي يقع فيها المبتدئون هو محاولة الوصول إلى عنصر غير موجود.

مثال:
fruits = ["Apple", "Banana"] print(fruits[2])
سيظهر خطأ، لأن القائمة تحتوي على عنصرين فقط:
IndexError: list index out of range
والأرقام المتاحة هي:
0 1

لكن لا يوجد عنصر رقمه 2.

لذلك انتبه دائمًا إلى عدد عناصر القائمة.

ملخص الدرس

في هذا الدرس تعلمنا:

  • ما هي القوائم Lists في بايثون.
  • كيف ننشئ قائمة.
  • كيف نصل إلى عناصر القائمة باستخدام Index.
  • كيف نعدل عنصر داخل القائمة.
  • كيف نضيف عنصر جديد باستخدام ()append.
  • كيف نضيف عنصر في مكان محدد باستخدام ()insert.
  • كيف نحذف عنصر باستخدام ()remove و()pop.
  • كيف نعرف عدد العناصر باستخدام ()len.
  • كيف نرتب القائمة باستخدام ()sort.
  • كيف نعكس ترتيب القائمة باستخدام ()reverse.

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

تمرين بسيط لك

أنشئ قائمة تحتوي على أسماء 5 أصدقاء، ثم قم بالتالي:

  1. اطبع أول اسم في القائمة.
  2. أضف اسمًا جديدًا إلى القائمة.
  3. احذف اسمًا من القائمة.
  4. اطبع عدد الأسماء الموجودة في القائمة.

مثال بداية:

friends = ["Ali", "Omar", "Sara", "Mona", "Khaled"]

جرّب بنفسك، ولا تخاف من الأخطاء، فالأخطاء جزء طبيعي جدًا من رحلة تعلم البرمجة.


في الدرس القادم

في الدرس القادم من سلسلة أساسيات بايثون سنتعلم عن:

جمل الشرط if و else في بايثون

وسنعرف كيف نجعل البرنامج يتخذ قرارات حسب شروط معينة.

اقرأ الدرس التالي: أساسيات بايثون 9: الشروط if و else

إرسال تعليق

أحدث أقدم