تقنية

tuple في بايثون: هل ثباتها يمنع تعديل قائمة داخلها؟

إضافة 6 إلى القائمة تنجح؛ استبدال عنصر tuple يثير TypeError.
تعديل واستبدال.

tuple تمنع الإسناد إلى عناصرها؛ قد يكون أحد العناصر قائمة قابلة للتعديل. [1]

الخلاصة السريعة

لا؛ تعديل القائمة الداخلية يختلف عن استبدال عنصر tuple. [1]

  • tuple تمنع الإسناد إلى عناصرها؛ قد يكون أحد العناصر قائمة قابلة للتعديل. [1]
  • append تضيف إلى القائمة؛ استدعاؤها لا يستبدل عنصر tuple بقائمة أخرى. [1]
  • مثال مؤلف على CPython 3.12.14: inner=[2]؛ t=(inner,9)؛ بعد t[0].append(6) تظهر t بالقيم ([2,6],9). [1]
  • t[0]=[8] تثير TypeError؛ لا تنفذ الاستبدال، وتبقى ([2,6],9) في المثال. [1]
  • t[0] is inner تعطي True؛ بقي مرجع القائمة نفسه رغم تغير محتواها. [1]

ثبات العناصر

tuple تمنع الإسناد إلى عناصرها؛ قد يكون أحد العناصر قائمة قابلة للتعديل. [1]

إضافة داخل القائمة

append تضيف إلى القائمة؛ استدعاؤها لا يستبدل عنصر tuple بقائمة أخرى. [1]

تعديل ناجح

مثال مؤلف على CPython 3.12.14: inner=[2]؛ t=(inner,9)؛ بعد t[0].append(6) تظهر t بالقيم ([2,6],9). [1]

t[0].append(6); t -> ([2,6],9) [1]

t[0] وinner يشيران إلى القائمة نفسها بعد الإضافة؛ الهوية True.
مرجع محفوظ.

استبدال مرفوض

t[0]=[8] تثير TypeError؛ لا تنفذ الاستبدال، وتبقى ([2,6],9) في المثال. [1]

t[0]=[8] -> TypeError [1]

t[0] is inner تعطي True؛ بقي مرجع القائمة نفسه رغم تغير محتواها. [1]

المراجع

  1. Python — tuples

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.