دروس الوحدة (2/4)
Tuples والتفريغ
tuple هو تسلسل مرتب وغير قابل للتغيير: بمجرد إنشائه، يمكنك ذلك لم تعد تغير عناصرها. هو مكتوب بين قوسين (على الرغم من ما يحددها في الواقع هو الفاصلة).
إنشاء صف
vuota = ()
una = (42,) # ATTENZIONE: senza virgola, (42) è solo 42 fra parentesi
coords = (10, 20)
mista = ("Ada", 36, True)يعمل الوصول عن طريق الفهرس والتقطيع تمامًا كما هو الحال في القوائم: coords[0]،
محمي_INLINE_4، محمي_INLINE_5.
متى تستخدم Tuple بدلا من القائمة
- عندما تمثل القيمة مجموعة ثابتة يجب ألا تتغير
(الإحداثيات، التاريخ
(year, month, day)، الإصدار(1, 2, 3)). - عندما تحتاج إلى استخدام القيمة باعتبارها مفتاح القاموس أو كعنصر من عناصر
أ
set: يمكن استخدام الكائنات غير القابلة للتغيير (القابلة للتجزئة) فقط. - عندما تريد الإشارة إلى قارئ الكود بأن قيمة that هي "مجمدة".
التفريغ: الميزة التي تغير طريقة كتابة بايثون
nome, anni = ("Ada", 36)
nome # 'Ada'
anni # 36كما أنه يعمل بدون أقواس (إنها الفاصلة التي تحدد صف):
x, y = 10, 20ويتيح المبادلة بدون متغير مؤقت، أي لغة بايثون خالصة لغة:
a, b = 1, 2
a, b = b, a
a, b # (2, 1)تفريغ الأمتعة باستخدام * (الراحة)
عندما تريد التقاط "الأول والباقي" أو "الأول، الأخير، الوسط":
primo, *resto = [1, 2, 3, 4, 5]
primo # 1
resto # [2, 3, 4, 5]
primo, *centro, ultimo = [1, 2, 3, 4, 5]
centro # [2, 3, 4]وهذا ما يسمى ** المهمة المميزة بنجمة **: النجم يجمع كل ذلك يبقى في القائمة.
مصيدة الصفوف ذات العنصر الواحد
(42) ليس صفًا، بل هو الرقم 42 داخل القوسين. لجعل أ
صف ذو عنصر واحد تحتاج إلى الفاصلة: (42,). وبدون ذلك، أي عملية
فشل بطريقة مربكة.
x = (42)
type(x) # <class 'int'>
x = (42,)
type(x) # <class 'tuple'>صفوف أحادية العنصر
لإنشاء صف يحتوي على عنصر واحد فقط، لا تكفي الأقواس وحدها: يجب عليك إدراج فاصلة لاحقة، على سبيل المثال t = (42,). بدون الفاصلة، تتعامل بايثون مع الأقواس على أنها مجموعة رياضية بسيطة، مما يؤدي إلى إنشاء عدد صحيح عادي 42.
جربه
بالنظر إلى `a = 1` و`b = 2`، قم بتبديل قيمهما في سطر واحد (تفريغ الصف) وقم بتقييم الصف (a، b).
إظهار التلميح
أ، ب = ب، أ
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
من القائمة `voti = [7, 5, 8, 6, 9]`، استخدم التفريغ لاستخراج الدرجة الأولى إلى `primo`، والأخيرة في `ultimo` والباقي إلى `centro`. تقييم `(بريمو، سنترو، أولتيمو)`.
إظهار التلميح
بريمو، *سنترو، آخر = تصويت → بريمو = 7، سنترو = [5،8،6]، آخر = 9.
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
Given the tuple `point = (4, 5, 6)`, use unpacking to assign the three values to the variables `x`, `y`, `z` respectively. Then, calculate the sum of `x`, `y`, and `z` and store it in `coord_sum`. Finally, evaluate `coord_sum`.
إظهار التلميح
استخدم x، y، z = point لاستخراج الإحداثيات الثلاثة في عبارة واحدة.
الحل متاح بعد 3 من المحاولات