Kodax

القوائم Lists — أساسيات Python

القوائم (Lists)

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

scores = [90, 75, 88]
names = ["أحمد", "منى"]
empty = []

الفهرسة

العنصر الأول فهرسه 0، والفهارس السالبة تبدأ من النهاية:

scores[0]    # 90
scores[-1]   # 88 (الأخير)
scores[5]    # IndexError: الفهرس خارج القائمة

التقطيع (slicing)

list[start:end] يأخذ من start حتى قبل end:

nums = [10, 20, 30, 40, 50]
nums[1:4]   # [20, 30, 40]
nums[:2]    # [10, 20]
nums[::-1]  # [50, 40, 30, 20, 10] (عكس)

القوائم قابلة للتعديل

| العملية | الطريقة |

|---|---|

| إضافة في النهاية | append(x) |

| إضافة في موضع | insert(i, x) |

| دمج قائمة | extend([...]) |

| حذف قيمة | remove(x) (أول ظهور) |

| حذف وإرجاع بالفهرس | pop(i) (الأخير إن لم تحدد) |

| ترتيب | sort() يعدّل القائمة، و sorted(list) يرجع قائمة جديدة |

| الطول | len(list) |

| البحث | x in list، index(x)، count(x) |

فخ النسخ (مهم جداً)

a = [1, 2, 3]
b = a          # b ليست نسخة! بل اسم آخر لنفس القائمة
b.append(4)
print(a)       # [1, 2, 3, 4]
c = a.copy()   # نسخة مستقلة

دوال مفيدة مع الأرقام

sum(scores)، max(scores)، min(scores)، والمتوسط: sum(scores) / len(scores).

تمرين

أنشئ قائمة بدرجات 5 طلاب، واطبع أعلى درجة وأقلها والمتوسط، ثم أضف درجة جديدة واطبع القائمة مرتبة تنازلياً.

# إنشاء قوائم والوصول لعناصرها
scores = [90, 75, 88, 62, 95]
print(scores[0], scores[-1])     # 90 95
print(scores[1:3])               # [75, 88]

# التعديل
scores[1] = 80
scores.append(70)                # إضافة في النهاية
scores.insert(0, 100)            # إضافة في البداية
scores.remove(62)                # حذف قيمة
last = scores.pop()              # حذف الأخير وإرجاعه
print("حُذف:", last)
print(scores)

# البحث والمعلومات
print(95 in scores)              # True
print(len(scores), max(scores), min(scores))
print("المتوسط:", round(sum(scores) / len(scores), 1))

# sort تعدّل القائمة، sorted ترجع قائمة جديدة
ordered = sorted(scores)
scores.sort(reverse=True)
print(ordered)
print(scores)

# فخ النسخ
a = [1, 2, 3]
b = a            # نفس القائمة
c = a.copy()     # نسخة مستقلة
b.append(4)
print(a, c)      # [1, 2, 3, 4] [1, 2, 3]

# قائمة داخل قائمة
matrix = [[1, 2, 3], [4, 5, 6]]
print(matrix[1][2])   # 6
اختبر فهمك