Python للذكاء الاصطناعي متوسط · Intermediate 12 دقيقة

القوائم والصفوف

Lists and Tuples

التسلسلات المرتبة في Python: القائمة القابلة للتعديل والصف غير القابل للتعديل.

تقدّمك في المسار0%

القوائم

scores = [0.82, 0.91, 0.77]
scores.append(0.88)       # إضافة في النهاية
scores.insert(0, 0.5)     # إضافة في موقع محدد
scores.remove(0.77)       # حذف قيمة
last = scores.pop()       # حذف آخر عنصر وإعادته
scores.sort()             # ترتيب تصاعدي في المكان
len(scores)               # عدد العناصر

الفهرسة والتقطيع

x = [10, 20, 30, 40, 50]
x[0]      # 10
x[-1]     # 50
x[1:4]    # [20, 30, 40]
x[:2]     # [10, 20]
x[::2]    # [10, 30, 50]
x[::-1]   # عكس القائمة

الفهرس يبدأ من الصفر، ونهاية التقطيع غير مشمولة.

النسخ مقابل الإشارة

a = [1, 2, 3]
b = a          # b يشير إلى القائمة نفسها
b.append(4)
print(a)       # [1, 2, 3, 4]
c = a.copy()   # نسخة مستقلة (سطحية)

الصفوف

shape = (224, 224, 3)     # أبعاد صورة
h, w, c = shape           # فك التعبئة (unpacking)

def min_max(values):
    return min(values), max(values)   # تعيد tuple

lo, hi = min_max([3, 9, 1])

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

دوال مفيدة

sum وmin وmax وsorted (تعيد قائمة جديدة) وany وall. مثال: sorted(scores, reverse=True)[:3] تعيد أعلى ثلاث درجات.

مصطلحات الدرس

التقطيع Slicing
استخراج جزء من تسلسل بالصيغة [start:stop:step].
الصف Tuple
تسلسل مرتب غير قابل للتعديل يُكتب بين قوسين عاديين.
القائمة List
تسلسل مرتب وقابل للتعديل من العناصر يُكتب بين قوسين مربعين.

الملخص

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

أسئلة مراجعة

  1. ما ناتج [10, 20, 30, 40][1:3]؟

    [20, 30].

  2. متى تستخدم tuple بدلاً من list؟

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

المصادر والمراجع

  1. Data Structures: More on Lists — Python documentation
  2. Tuples and Sequences — Python documentation

إكمال الدرس