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

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

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

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

في هذا المقال من بايثون العرب سنشرح معنى List في Python بطريقة بسيطة، مع أمثلة عملية على إنشاء القوائم، استخدام الفهرس index، التعديل، الإضافة، الحذف، الترتيب، والمرور على عناصر القائمة باستخدام for loop.

{getToc} $title={محتوى المقال}

{alertInfo} القائمة List في بايثون تشبه صندوقًا منظمًا يحتوي على عدة عناصر، وكل عنصر له رقم ترتيب يسمى index.

شرح فكرة القوائم Lists في Python وكيف تخزن عدة عناصر داخل متغير واحد

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

القائمة List هي نوع بيانات في Python يستخدم لتخزين مجموعة من العناصر داخل متغير واحد. تكتب القائمة باستخدام الأقواس المربعة []، وتفصل العناصر داخلها بفواصل.

مثال بسيط:

names = ["Ali", "Sara", "Omar"]

print(names)

الناتج:

['Ali', 'Sara', 'Omar']

في هذا المثال، المتغير names لا يحتوي على قيمة واحدة فقط، بل يحتوي على ثلاث قيم داخل قائمة واحدة.

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

نستخدم القوائم عندما نريد التعامل مع مجموعة عناصر مرتبطة ببعضها، مثل قائمة أسماء الطلاب، درجات الامتحان، المنتجات، المهام اليومية، الروابط، الكلمات، أو الأرقام.

بدون القوائم، قد تضطر لكتابة متغير لكل عنصر:

student1 = "Ali"
student2 = "Sara"
student3 = "Omar"

وهذا غير عملي إذا كان لديك عدد كبير من العناصر. الأفضل استخدام قائمة:

students = ["Ali", "Sara", "Omar"]
{alertSuccess} استخدم القائمة عندما يكون لديك أكثر من قيمة من نفس الفكرة، مثل أسماء، أرقام، مهام، منتجات، أو نتائج.

كيف تنشئ قائمة في بايثون؟

يمكنك إنشاء قائمة بوضع العناصر بين أقواس مربعة:

numbers = [10, 20, 30, 40]

print(numbers)

ويمكنك إنشاء قائمة نصوص:

fruits = ["apple", "banana", "orange"]

print(fruits)

ويمكنك إنشاء قائمة فارغة ثم تضيف إليها لاحقًا:

tasks = []

print(tasks)

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

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

mixed = ["Ahmed", 25, True]

print(mixed)

هذا الكود صحيح، لكن في المشاريع الحقيقية حاول تنظيم بياناتك قدر الإمكان حتى لا تصبح القوائم مربكة.

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

كل عنصر داخل القائمة له رقم ترتيب يسمى index. في بايثون، الفهرس يبدأ من الرقم 0 وليس من الرقم 1.

مثال:

fruits = ["apple", "banana", "orange"]

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

الناتج:

apple
banana
orange

لاحظ أن:

  • fruits[0] تعني العنصر الأول.
  • fruits[1] تعني العنصر الثاني.
  • fruits[2] تعني العنصر الثالث.
مثال يوضح الوصول إلى عناصر القائمة في بايثون باستخدام الفهرس index بداية من صفر
{alertWarning} من أكثر أخطاء المبتدئين أنهم يعتقدون أن أول عنصر رقمه 1، لكن في بايثون أول عنصر في القائمة رقمه 0.

استخدام الفهرس السالب في القوائم

يمكنك أيضًا الوصول إلى عناصر القائمة من النهاية باستخدام الفهرس السالب. الرقم -1 يعني آخر عنصر في القائمة.

fruits = ["apple", "banana", "orange"]

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

الناتج:

orange
banana

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

الدالة len() تستخدم لمعرفة عدد عناصر القائمة، وهي من الدوال المهمة جدًا في بايثون.

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

count = len(students)

print(count)

الناتج:

3

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

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

fruits = ["apple", "banana", "orange"]

fruits[1] = "mango"

print(fruits)

الناتج:

['apple', 'mango', 'orange']

في المثال السابق غيرنا العنصر الثاني من banana إلى mango.

إضافة عنصر إلى نهاية القائمة باستخدام append

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

tasks = ["study", "practice"]

tasks.append("review")

print(tasks)

الناتج:

['study', 'practice', 'review']

إضافة عنصر في مكان محدد باستخدام insert

الدالة insert() تسمح لك بإضافة عنصر في موقع محدد داخل القائمة.

fruits = ["apple", "orange"]

fruits.insert(1, "banana")

print(fruits)

الناتج:

['apple', 'banana', 'orange']

حذف عنصر من القائمة باستخدام remove

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

fruits = ["apple", "banana", "orange"]

fruits.remove("banana")

print(fruits)

الناتج:

['apple', 'orange']
{alertWarning} إذا حاولت حذف عنصر غير موجود باستخدام remove() سيظهر خطأ. لذلك تأكد أن العنصر موجود قبل حذفه.

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

الدالة pop() تحذف عنصرًا حسب الفهرس، وإذا لم تحدد الفهرس فإنها تحذف آخر عنصر.

fruits = ["apple", "banana", "orange"]

last_item = fruits.pop()

print(last_item)
print(fruits)

الناتج:

orange
['apple', 'banana']

وإذا أردت حذف عنصر محدد بالفهرس:

fruits = ["apple", "banana", "orange"]

fruits.pop(1)

print(fruits)

الناتج:

['apple', 'orange']
شرح تعديل وإضافة وحذف عناصر القائمة في بايثون باستخدام append و insert و pop و remove

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

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

names = ["Ali", "Sara", "Omar"]

for name in names:
    print(name)

الناتج:

Ali
Sara
Omar

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

مثال عملي: حساب مجموع عناصر قائمة

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

numbers = [10, 20, 30, 40]

total = 0

for number in numbers:
    total += number

print(total)

الناتج:

100

ويمكنك استخدام الدالة الجاهزة sum() للحصول على نفس النتيجة:

numbers = [10, 20, 30, 40]

print(sum(numbers))
{alertInfo} استخدام for loop يساعدك على فهم طريقة عمل القائمة، أما sum() فهي طريقة مختصرة عندما تريد جمع الأرقام مباشرة.

تقطيع القائمة Slicing

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

numbers = [10, 20, 30, 40, 50]

print(numbers[1:4])

الناتج:

[20, 30, 40]

هنا بدأنا من الفهرس 1 وتوقفنا قبل الفهرس 4. يعني العنصر عند الفهرس 4 لا يدخل في النتيجة.

ترتيب القائمة باستخدام sort

إذا كانت لديك قائمة أرقام أو نصوص وتريد ترتيبها، يمكنك استخدام sort().

numbers = [40, 10, 30, 20]

numbers.sort()

print(numbers)

الناتج:

[10, 20, 30, 40]

وللترتيب العكسي:

numbers = [40, 10, 30, 20]

numbers.sort(reverse=True)

print(numbers)

الناتج:

[40, 30, 20, 10]

الفرق بين append و extend باختصار

الدالة append() تضيف عنصرًا واحدًا إلى نهاية القائمة. أما extend() فتضيف عدة عناصر من قائمة أخرى.

مثال على append():

a = [1, 2]

a.append([3, 4])

print(a)

الناتج:

[1, 2, [3, 4]]

مثال على extend():

a = [1, 2]

a.extend([3, 4])

print(a)

الناتج:

[1, 2, 3, 4]

لاحظ أن append() أضافت القائمة كاملة كعنصر واحد، بينما extend() أضافت عناصر القائمة واحدًا واحدًا.

أهم أوامر ودوال القوائم في بايثون

الأمر وظيفته مثال سريع
len() معرفة عدد عناصر القائمة len(names)
append() إضافة عنصر في نهاية القائمة items.append("new")
insert() إضافة عنصر في مكان محدد items.insert(1, "new")
remove() حذف عنصر حسب قيمته items.remove("old")
pop() حذف عنصر حسب الفهرس أو حذف آخر عنصر items.pop()
sort() ترتيب عناصر القائمة numbers.sort()
reverse() عكس ترتيب عناصر القائمة items.reverse()
clear() حذف كل عناصر القائمة items.clear()
ملخص أهم أوامر ودوال القوائم في بايثون مثل len و append و remove و pop و sort

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

1. الوصول إلى فهرس غير موجود

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

names = ["Ali", "Sara"]

print(names[5])

القائمة فيها عنصران فقط، لذلك لا يوجد عنصر بالفهرس 5.

2. نسيان أن الفهرس يبدأ من صفر

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

3. استخدام remove مع عنصر غير موجود

إذا استخدمت remove() مع قيمة غير موجودة، سيظهر خطأ. يمكنك التحقق أولًا:

fruits = ["apple", "banana"]

if "orange" in fruits:
    fruits.remove("orange")
else:
    print("العنصر غير موجود")

مثال تطبيقي: قائمة مهام بسيطة

الآن لنأخذ مثالًا صغيرًا يجمع أكثر من فكرة تعلمناها في هذا الدرس.

tasks = []

tasks.append("تعلم القوائم")
tasks.append("حل تمارين بايثون")
tasks.append("مراجعة الدرس")

print("عدد المهام:", len(tasks))

for task in tasks:
    print("-", task)

الناتج:

عدد المهام: 3
- تعلم القوائم
- حل تمارين بايثون
- مراجعة الدرس

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

متى أستخدم List ومتى لا أستخدمها؟

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

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

أسئلة شائعة

ما معنى List في بايثون؟

القائمة List هي نوع بيانات يستخدم لتخزين عدة عناصر داخل متغير واحد، وتكتب باستخدام الأقواس المربعة [].

هل يمكن تعديل عناصر القائمة في Python؟

نعم، القوائم قابلة للتعديل. يمكنك تغيير قيمة عنصر، إضافة عناصر جديدة، أو حذف عناصر موجودة.

هل يبدأ index في القائمة من 0 أم 1؟

يبدأ الفهرس في بايثون من 0. لذلك العنصر الأول في القائمة يكون list[0].

ما الفرق بين append و insert؟

الدالة append() تضيف عنصرًا في نهاية القائمة، أما insert() فتضيف عنصرًا في مكان محدد حسب الفهرس.

ما الفرق بين remove و pop؟

الدالة remove() تحذف عنصرًا حسب قيمته، أما pop() فتحذف عنصرًا حسب الفهرس، أو تحذف آخر عنصر إذا لم تحدد فهرسًا.

هل يمكن وضع أرقام ونصوص داخل نفس القائمة؟

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

روابط مهمة من بايثون العرب

مصادر خارجية مفيدة

الخلاصة

القوائم Lists من أهم أساسيات بايثون، لأنها تسمح لك بتخزين عدة عناصر داخل متغير واحد، ثم التعامل معها بسهولة. تعلمنا في هذا الدرس إنشاء قائمة، الوصول للعناصر باستخدام index، معرفة عدد العناصر باستخدام len()، تعديل العناصر، إضافة عناصر باستخدام append() و insert()، وحذف العناصر باستخدام remove() و pop().

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

{alertSuccess} القاعدة الذهبية: إذا كان لديك أكثر من عنصر وتريد تخزينه أو المرور عليه أو تعديله، فغالبًا القائمة List هي الخيار المناسب في بايثون.

إرسال تعليق

أحدث أقدم