في الدروس السابقة من سلسلة أساسيات بايثون تعرفنا على أشياء مهمة مثل المتغيرات، التعليقات، العمليات الحسابية، وأنواع البيانات.
واليوم ننتقل إلى واحد من أهم المواضيع التي ستستخدمها كثيرًا في بايثون، وهو موضوع:
القوائم 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])
الناتج:
AppleBananaOrange
العنصر الأول رقمه 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 أصدقاء، ثم قم بالتالي:
- اطبع أول اسم في القائمة.
- أضف اسمًا جديدًا إلى القائمة.
- احذف اسمًا من القائمة.
- اطبع عدد الأسماء الموجودة في القائمة.
مثال بداية:
friends = ["Ali", "Omar", "Sara", "Mona", "Khaled"]
جرّب بنفسك، ولا تخاف من الأخطاء، فالأخطاء جزء طبيعي جدًا من رحلة تعلم البرمجة.
في الدرس القادم
في الدرس القادم من سلسلة أساسيات بايثون سنتعلم عن:
جمل الشرط if و else في بايثون
وسنعرف كيف نجعل البرنامج يتخذ قرارات حسب شروط معينة.
