دروس الوحدة (1/4)
القوائم
القائمة هي تسلسل مرتب وقابل للتغيير من العناصر. إنه
بنية البيانات الأكثر استخدامًا في Python: يمكنك إنشاء واحدة باستخدام [] وتعديلها
مع مجموعة من الأساليب الجديرة بالحفظ.
إنشاء قائمة
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None] # tipi diversi: legale ma raroالوصول عن طريق الفهرس والشريحة
تبدأ الفهارس عند 0. يتم احتساب المؤشرات السالبة من اليمين:
parole = ["a", "b", "c", "d"]
parole[0] # 'a'
parole[-1] # 'd' (ultimo)
parole[1:3] # ['b', 'c'] slice [start:stop]
parole[::-1] # ['d', 'c', 'b', 'a'] reverseلا ترفع الشريحة أبدًا IndexError: إذا كانت خارج النطاق، فإنها تُرجع
قائمة فرعية فارغة الوصول المباشر مثل parole[10]، بدلاً من ذلك، يثير خطأ
استثناء.
تعديل قائمة
nums = [1, 2, 3]
nums.append(4) # [1, 2, 3, 4] aggiunge in fondo
nums.insert(0, 0) # [0, 1, 2, 3, 4] inserisce in posizione
nums.extend([5, 6]) # [0, 1, 2, 3, 4, 5, 6] concatena
nums.pop() # 6 estrae ultimo
nums.pop(0) # 0 estrae primo (più lento: O(n))
nums.remove(3) # rimuove la PRIMA occorrenza di 3
nums[1] = 99 # sostituisce per indiceفرز
شكلان – من المهم التمييز بينهما:
nums = [3, 1, 4, 1, 5, 9, 2, 6]
nums.sort() # MUTA nums in place, ritorna None
ordinati = sorted(nums) # ritorna NUOVA lista, lascia nums invariata
nums.sort(reverse=True)
sorted(nums, key=lambda n: -n) # ordinamento per chiaveالطول، العضوية، التكرار
len(nums) # quanti elementi
3 in nums # True/False
for n in nums:
print(n)نسخ القائمة
a = b لا ينسخ — بل يقوم فقط بإنشاء اسم ثانٍ لنفس القائمة. ل
نسخ في الواقع:
copia = lista[:] # slice completo
copia = list(lista) # costruttore esplicito
copia = lista.copy() # metodo(هذه كلها نسخ سطحية — وتظل العناصر المتداخلة مشتركة.)
نسخ القوائم: احترس من المراجع
في Python، عندما تكتب list_b = list_a، فإنك لا تقوم بإنشاء نسخة: أنت تقوم فقط بإنشاء مرجع ثانٍ. سيؤدي تعديل list_b إلى تغيير list_a أيضًا. لإنشاء نسخة حقيقية مستقلة، يجب عليك كتابة list_b = list_a.copy() أو استخدام التقطيع الكامل: list_b = list_a[:].
جربه
في ضوء القائمة `nums = [5, 2, 8, 1, 9, 3]`، أنشئ `first_three_sorted` مع أول ثلاثة أرقام من الأرقام مرتبة بترتيب تصاعدي. لا تقم بتعديل الأرقام.
إظهار التلميح
الأعداد[:3] هي الثلاثة الأولى، ثم يتم فرزها (...).
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
بدءًا من `words = ['ciao']`، ألحق 'mondo' في النهاية، ثم أدخل '!' في البداية. تقييم "الكلمات".
إظهار التلميح
إلحاق في الذيل، إدراج (0، ...) في الرأس.
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
Given the list `items = [10, 20, 30, 40]`, use slicing to create a new list `reversed_items` containing the same elements but in reverse order. Finally, evaluate `reversed_items`.
إظهار التلميح
التقطيع بخطوة سلبية هو [::-1]. قم بتعيينه إلى Reverse_items.
الحل متاح بعد 3 من المحاولات