الانتقال إلى المحتوى الرئيسي
الوحدة 3 · الدرس 2 من 410/36 في الدورة~10 min
دروس الوحدة (2/4)

Tuples والتفريغ

tuple هو تسلسل مرتب وغير قابل للتغيير: بمجرد إنشائه، يمكنك ذلك لم تعد تغير عناصرها. هو مكتوب بين قوسين (على الرغم من ما يحددها في الواقع هو الفاصلة).

إنشاء صف

Python
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 هي "مجمدة".

التفريغ: الميزة التي تغير طريقة كتابة بايثون

Python
nome, anni = ("Ada", 36)
nome   # 'Ada'
anni   # 36

كما أنه يعمل بدون أقواس (إنها الفاصلة التي تحدد صف):

Python
x, y = 10, 20

ويتيح المبادلة بدون متغير مؤقت، أي لغة بايثون خالصة لغة:

Python
a, b = 1, 2
a, b = b, a
a, b   # (2, 1)

تفريغ الأمتعة باستخدام * (الراحة)

عندما تريد التقاط "الأول والباقي" أو "الأول، الأخير، الوسط":

Python
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,). وبدون ذلك، أي عملية فشل بطريقة مربكة.

Python
x = (42)
type(x)   # <class 'int'>
x = (42,)
type(x)   # <class 'tuple'>

صفوف أحادية العنصر

لإنشاء صف يحتوي على عنصر واحد فقط، لا تكفي الأقواس وحدها: يجب عليك إدراج فاصلة لاحقة، على سبيل المثال t = (42,). بدون الفاصلة، تتعامل بايثون مع الأقواس على أنها مجموعة رياضية بسيطة، مما يؤدي إلى إنشاء عدد صحيح عادي 42.

جربه

تمرين#python.m3.l2.e1
المحاولات: 0جارٍ التحميل…

بالنظر إلى `a = 1` و`b = 2`، قم بتبديل قيمهما في سطر واحد (تفريغ الصف) وقم بتقييم الصف (a، b).

جارٍ تحميل المحرر…
إظهار التلميح

أ، ب = ب، أ

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#python.m3.l2.e2
المحاولات: 0جارٍ التحميل…

من القائمة `voti = [7, 5, 8, 6, 9]`، استخدم التفريغ لاستخراج الدرجة الأولى إلى `primo`، والأخيرة في `ultimo` والباقي إلى `centro`. تقييم `(بريمو، سنترو، أولتيمو)`.

جارٍ تحميل المحرر…
إظهار التلميح

بريمو، *سنترو، آخر = تصويت → بريمو = 7، سنترو = [5،8،6]، آخر = 9.

الحل متاح بعد 3 من المحاولات

التحدي الإضافي

تمرين#python.m3.l2.e3
المحاولات: 0جارٍ التحميل…

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 من المحاولات