القوائم 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
اختبر فهمك