"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تعديل قائمة داخل دالة في بايثون: التمرير حسب المرجع أو التعديل الموضعي؟

كيفية تعديل قائمة داخل دالة في بايثون: التمرير حسب المرجع أو التعديل الموضعي؟

تم النشر بتاريخ 2024-11-08
تصفح:921

How to Modify a List Within a Function in Python: Pass by Reference or In-Place Modification?

تعديل قائمة داخل وظيفة

عند العمل مع معلمات القائمة في الوظائف، تشير المراجع التي تم تمريرها إلى الوظيفة إلى القائمة الأصلية. أي تعديلات يتم إجراؤها على متغير list_arg داخل الوظيفة تقتصر على نطاقها المحلي ولن تؤثر على القائمة الأصلية.

للتحايل على هذه المشكلة وتعديل القائمة الأصلية، يحتاج المرء إلى تعيين عناصر مباشرة إلى القائمة بدلاً من إعادة تعيين القائمة بأكملها إلى قيمة جديدة. إليك مثال:

def function1(list_arg):
   a = function2()    # function2 returns an array of numbers
   list_arg[:] = list(a)

list1 = [0] * 5
function1(list1)
print(list1)  # [1, 2, 3, 4, 5]

في هذا الكود المعدل، نستخدم تدوين الشريحة list_arg[:] لتعيين عناصر القائمة (أ) إلى القائمة الأصلية، تعديل القائمة بشكل فعال في مكانها.

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3