تقنية

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

بعد r=a.sort() تصبح a مرتبة، لكن r هي None.
قائمة وقيمة معادة.

sort ترتب القائمة نفسها وتعيد None؛ القيمة المعادة ليست القائمة المرتبة. [1]

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

لا؛ اقرأ القائمة بعد الاستدعاء، لا قيمة إرجاعه. [1]

  • sort ترتب القائمة نفسها وتعيد None؛ القيمة المعادة ليست القائمة المرتبة. [1]
  • ترتيب العناصر وتخزين قيمة الاستدعاء أمران مختلفان. [1]
  • مثال مؤلف على CPython 3.12.14: a=[3,1,2]؛ alias=a؛ r=a.sort()؛ تصبح a بالقيم [1,2,3]. [1]
  • r هي None؛ أما alias فتظهر [1,2,3] لأنها تشير إلى القائمة نفسها. [1]
  • a is alias تعطي True؛ لم تصبح r مرجعًا إلى القائمة. [1]

تعديل وإرجاع

sort ترتب القائمة نفسها وتعيد None؛ القيمة المعادة ليست القائمة المرتبة. [1]

ما الذي تقرؤه

ترتيب العناصر وتخزين قيمة الاستدعاء أمران مختلفان. [1]

القائمة بعد الفرز

مثال مؤلف على CPython 3.12.14: a=[3,1,2]؛ alias=a؛ r=a.sort()؛ تصبح a بالقيم [1,2,3]. [1]

r=a.sort(); a -> [1,2,3] [1]

a وalias تشيران إلى القائمة المرتبة نفسها؛ اختبار الهوية True.
مرجعان للقائمة.

قيمة الإرجاع والمرجع

r هي None؛ أما alias فتظهر [1,2,3] لأنها تشير إلى القائمة نفسها. [1]

r -> None; alias -> [1,2,3] [1]

a is alias تعطي True؛ لم تصبح r مرجعًا إلى القائمة. [1]

المراجع

  1. Python — sort

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

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