إذا كنت تعمل مع لغة برمجة بايثون ، فعلى الأرجح أنك صادفت موقفا تحتاج فيه إلى إنشاء نسخة من قائمة موجودة. قد يبدو نسخ القائمة مهمة سهلة ، ولكن هناك عدة طرق يمكن أن تكون أكثر فاعلية في المواقف المختلفة.
واحدة من أسهل الطرق لإنشاء نسخة من قائمة في بيثون هو استخدام شرائح. تسمح لك الشرائح بتحديد جزء من القائمة أو إنشاء نسخة كاملة منها. على سبيل المثال ، إذا كانت لديك قائمة قائمتي ، فيمكنك إنشاء نسخة منها عن طريق تعيينها لمتغير القائمة الجديدة على النحو التالي:
قائمة جديدة = قائمتي [:]
هناك طريقة أخرى أكثر فاعلية في الحالات التي تريد فيها إنشاء نسخة كاملة من القائمة ، بغض النظر عن الأصل ، وهي استخدام وظيفة القائمة (). تقوم وظيفة القائمة() بإنشاء قائمة جديدة بناء على الوسيطة التي تم تمريرها إليها. على سبيل المثال ، يمكنك إنشاء نسخة من قائمة قائمتي بتمريرها إلى وظيفة القائمة ():
قائمة جديدة = قائمة (قائمتي)
أخيرا ، لإنشاء نسخة من القائمة باستخدام النسخ العميق،يمكنك استخدام وحدة النسخ. النسخة.طريقة ديبكوبي () يخلق نسخة طبق الأصل من القائمة ، بما في ذلك جميع القوائم والكائنات المتداخلة. على سبيل المثال ، إذا كانت قائمتك تحتوي على قوائم متداخلة أو كائنات أخرى ، فيمكنك استخدام النسخ العميق على النحو التالي:
استيراد نسخةقائمة جديدة = نسخ.ديبكوبي (قائمتي)
- لماذا أحتاج إلى نسخة من قائمة بايثون?
- طرق بسيطة لعمل نسخة من قائمة بايثون
- باستخدام شريحة
- باستخدام وظيفة النسخ ()
- باستخدام القائمة()
- وظيفة طرق فعالة لعمل نسخة من قائمة بايثون
- 1. باستخدام عامل التقطيع
- 2. باستخدام طريقة النسخ ()
- 3. باستخدام وظيفة القائمة ()
- 4. باستخدام وحدة النسخ
- خاتمة
- باستخدام وحدة النسخ
- نسخة سطحية
- نسخة عميقة
- استخدام قائمة كوسيطة دالة
- سؤال وجواب
- كيف يمكنني عمل نسخة من القائمة في بايثون?
- ما هي الطريقة الأكثر فعالية لإنشاء نسخة من القائمة?
- هل من الممكن عمل نسخة من القائمة, أثناء تغيير عناصرها دون تغيير القائمة الأصلية?
لماذا أحتاج إلى نسخة من قائمة بايثون?
في لغة برمجة بايثون ، تعد القوائم واحدة من أكثر هياكل البيانات شيوعا. إنها تسمح لك بتخزين مجموعات العناصر ومعالجتها ، سواء كانت أرقاما أو سلاسل أو أي كائنات أخرى.
في بعض الأحيان يكون من الضروري إنشاء نسخة من القائمة. نسخة من القائمة هي كائن جديد يخزن نفس العناصر الموجودة في القائمة الأصلية. ومع ذلك ، فإن النسخة لها مزاياها واستخداماتها.
الحماية ضد التغييرات
عند إنشاء نسخة من القائمة ، فإنه يحميك من التغييرات غير المرغوب فيها إلى القائمة الأصلية. إذا قمت بتغيير العناصر الموجودة في النسخة عن طريق الخطأ ، فلن يؤثر ذلك على القائمة الأصلية. هذا مهم بشكل خاص إذا كنت تريد الاحتفاظ بالبيانات في حالتها الأصلية أو مواصلة العمل معها لاحقا.
مقارنة التعديلات
في بعض الأحيان تريد مقارنة نسختين من القائمة لفهم التغييرات التي تم إجراؤها. يتيح لك إنشاء نسخة من القائمة حفظ إصدار واحد ثم تعديل الإصدار الآخر ومقارنته. هذا مفيد بشكل خاص عند تصحيح البرامج أو تحليل البيانات.
العمل مع أجزاء من القائمة
إذا كنت ترغب في معالجة جزء فقط من القائمة ، فإن إنشاء نسخة منها سيسمح لك بالعمل مع هذا الجزء بشكل منفصل دون تغيير القائمة الأصلية. يمكن أن يكون هذا مفيدا عندما تريد إجراء عمليات مختلفة على أجزاء مختلفة من القائمة أو تقسيمها إلى مجموعات فرعية.
تبسيط التعليمات البرمجية
في بعض الأحيان ، يتيح لك إنشاء نسخة من القائمة جعل الشفرة أكثر قابلية للقراءة والفهم. بدلا من العمل مع القائمة الأصلية ، يمكنك إنشاء نسخة منه ، وإجراء بعض التلاعب والحصول على النتيجة المرجوة. يمكن أن يكون هذا مفيدا بشكل خاص عند العمل مع الوظائف التي تعدل القائمة التي تم تمريرها إليها.
نسخ قائمة في بيثون يمكن أن يتحقق في نواح كثيرة ، واختيار طريقة يعتمد على الاحتياجات المحددة الخاصة بك. كقاعدة عامة ، يعد استخدام وظيفة النسخ() المضمنة أو شريحة القائمة [:] أبسط الطرق وأكثرها فعالية لإنشاء نسخة من القائمة.
طرق بسيطة لعمل نسخة من قائمة بايثون
تقدم بايثون عدة طرق لإنشاء نسخة من القائمة. يمكن أن تكون نسخة من القائمة مفيدة عندما تريد الاحتفاظ بالقائمة الأصلية والعمل مع نسخة منها دون التأثير على البيانات الأصلية.
فيما يلي بعض الطرق البسيطة والفعالة لعمل نسخة من قائمة في بايثون:
- باستخدام النسخة.طريقة ديبكوبي ():
القائمة الأصلية = [1, 2, 3, 4, 5]
نسخ_قائمة = نسخ.ديبكوبي (القائمة الأصلية)
طريقة النسخ.ديبكوبي () ينشئ نسخة عميقة من قائمة عن طريق نسخ جميع العناصر بشكل متكرر ، بما في ذلك القوائم المتداخلة أو الكائنات الأخرى القابلة للتغيير.
تسمح لك الطرق المقدمة بإنشاء نسخ من القوائم في بايثون باستخدام أدوات بسيطة ويمكن الوصول إليها ، اعتمادا على احتياجاتك الخاصة.
باستخدام شريحة
يعد نسخ قائمة في بايثون باستخدام شريحة واحدة من أسهل الطرق لإنشاء نسخة من قائمة موجودة. تتيح لنا الشريحة تحديد نطاق معين من العناصر من القائمة.
في ما يلي مثال يوضح كيفية استخدام شريحة لإنشاء نسخة من قائمة:
القائمة الأصلية = [1, 2, 3, 4, 5]
قائمة النسخ = القائمة الأصلية [:] # نسخة من القائمة
طباعة (قائمة النسخ)
في هذا المثال ، نستخدم شريحة [:] لإنشاء نسخة من قائمة القائمة الأصلية وتعيينها لمتغير قائمة النسخ. نتيجة لذلك ، نحصل على قائمة جديدة بنفس العناصر الموجودة في القائمة الأصلية.
من المهم أن نفهم أنه عند استخدام شريحة لإنشاء نسخة من قائمة ، فإننا في الواقع نقوم بإنشاء كائن قائمة جديد. هذا يعني أن تغيير العناصر في نسخة من القائمة لن ينعكس في القائمة الأصلية والعكس صحيح.
هنا مثال يوضح هذا:
القائمة الأصلية = [1, 2, 3, 4, 5]
قائمة النسخ = القائمة الأصلية [:] # نسخة من القائمة
[1, 2, 3, 4, 5]
يعد استخدام شريحة لإنشاء نسخة من القائمة طريقة بسيطة وفعالة. إنها مناسبة لمعظم الحالات عندما نحتاج إلى إنشاء نسخة مستقلة من القائمة.
باستخدام وظيفة النسخ ()
في بايثون ، يمكنك استخدام
وظيفة النسخ () لإنشاء نسخة من القائمة
. هذه الوظيفة جزء من الوحدة
طباعة (نسخ _ أرقام)
واستخدام
وظيفة النسخ ()
من الوحدة
نسخ
لإنشاء نسخة منه
نسخ الأرقام
. بعد ذلك ، نعرض النتيجة على الشاشة.
نسخ الفواكه [0] = 'الموز'
باستخدام
نسخة () وظيفة
. ثم نقوم بتغيير العنصر الأول من النسخة إلى "الموز" وإخراج كلتا القائمتين. سترى أن تغيير العنصر في النسخة لم يؤثر على القائمة الأصلية.
ومن الجدير بالذكر أيضا أن
النسخة ()
تعمل الوظيفة فقط للقوائم أحادية البعد. إذا كانت لديك قائمة تحتوي على قوائم متداخلة أو هياكل بيانات معقدة أخرى ، فقد تحتاج إلى استخدام الوظيفة
ديبكوبي()
من الوحدة
نسخ
لإنشاء نسخة كاملة ، مع مراعاة جميع الكائنات المتداخلة.
باستخدام وظيفة القائمة ()
تتيح لك وظيفة القائمة () في لغة برمجة بايثون إنشاء نسخة من القائمة. في هذه الحالة ، ستحتوي القائمة الجديدة على نفس قيم العناصر مثل القائمة الأصلية ، ولكنها ستشغل منطقة ذاكرة منفصلة.
مثال على استخدام وظيفة القائمة() :
# قائمة المصدر
القائمة الأصلية = [1, 2, 3, 4, 5]
# إنشاء نسخة من القائمة باستخدام القائمة ()
قائمة = قائمة (القائمة الأصلية)
# التحقق من النتائج
من الطباعة (القائمة الأصلية) # [1, 2, 3, 4, 5]
طباعة (نسخ_قائمة) # [1, 2, 3, 4, 5]
وظيفة القائمة () هي طريقة بسيطة وفعالة للحصول على نسخة من القائمة. يمكن أن يكون مفيدا عند العمل بكميات كبيرة من البيانات ، عندما تحتاج إلى إنشاء نسخة من القائمة لمزيد من معالجة البيانات دون تغيير القائمة الأصلية.
ومع ذلك ، تجدر الإشارة إلى أن وظيفة القائمة() تنشئ نسخة سطحية من القائمة ، أي إذا كانت القائمة تحتوي على كائنات متداخلة ، فستشير إلى نفس الكائنات في الذاكرة. لإنشاء نسخة عميقة من القائمة ، عندما تحتاج إلى نسخ جميع عناصر القائمة ، بما في ذلك الكائنات المتداخلة ، يجب عليك استخدام طرق أخرى ، مثل طريقة النسخ() أو وحدة النسخ.
طرق فعالة لعمل نسخة من قائمة بايثون
تقدم بايثون عدة طرق لإنشاء نسخة من القائمة. في هذه المقالة ، سنلقي نظرة على العديد من الطرق الفعالة التي يمكنك استخدامها في مشاريعك.
1. باستخدام عامل التقطيع
الطريقة الأبسط والأكثر فعالية لإنشاء نسخة من القائمة هي استخدام عامل التقطيع. يسمح لك بنسخ القائمة بأكملها في عملية واحدة:
قائمة جديدة = قائمة قديمة [:]
على سبيل المثال:
القائمة القديمة = [1 ، 2 ، 3]
قائمة جديدة = قائمة قديمة [:]
طباعة (قائمة جديدة) # [1 ، 2 ، 3]
2. باستخدام طريقة النسخ ()
الطريقة الثانية هي استخدام طريقة النسخ (). يقوم بإنشاء نسخة سطحية من القائمة:
قائمة جديدة = قائمة قديمة.نسخة()
على سبيل المثال:
القائمة القديمة = [1 ، 2 ، 3]
قائمة جديدة = قائمة قديمة.نسخة()
طباعة (قائمة جديدة) # [1 ، 2 ، 3]
3. باستخدام وظيفة القائمة ()
، الطريقة الثالثة هي استخدام وظيفة القائمة (). كما أنه ينشئ نسخة سطحية من القائمة:
قائمة جديدة = قائمة (قائمة قديمة)
على سبيل المثال:
القائمة القديمة = [1 ، 2 ، 3]
قائمة جديدة = قائمة (قائمة قديمة)
طباعة (قائمة جديدة) # [1 ، 2 ، 3]
4. باستخدام وحدة النسخ
إذا كنت بحاجة إلى إنشاء نسخة عميقة من القائمة ، فيمكنك استخدام وحدة النسخ. طريقة ديبكوبي () يخلق نسخة مستقلة تماما من القائمة:
استيراد نسخة
قائمة جديدة = نسخ.ديبكوبي (القائمة القديمة)
على سبيل المثال:
- استيراد نسخة
- القائمة القديمة = [1 ، 2 ، 3]
قائمة جديدة = نسخ.ديبكوبي (القائمة القديمة)
طباعة (قائمة جديدة) # [1 ، 2 ، 3]
خاتمةيتيح لك استخدام طرق فعالة لإنشاء نسخة من القائمة تجنب الأخطاء وتبسيط العمل مع البيانات. اختر الطريقة المناسبة اعتمادا على متطلبات المشروع واستمر في تطوير برامج بايثون الخاصة بك!
باستخدام وحدة النسخ
هناك وحدة نسخ توفر وظائف لإنشاء نسخ من الكائنات في بايثون.
وحدة النسخ لها وظيفتان رئيسيتان:
نسخ—) - إنشاء نسخة سطحية من الكائن
ديبكوبي () - يخلق نسخة عميقة من الكائن
الفرق بين النسخة السطحية والنسخة العميقة هو أن النسخة السطحية تنشئ كائنا جديدا ، ولكنها تشير إلى نفس الكائنات المتداخلة ، بينما تقوم النسخة العميقة بإنشاء نسخة مستقلة تماما من الكائن ، بما في ذلك جميع الكائنات المتداخلة.
لاستخدام وحدة النسخ ، تحتاج إلى استيرادها باستخدام السطر التالي:
استيراد نسخةأمثلة على استخدام الوظائف:
نسخة سطحية
لإنشاء نسخة سطحية من كائن ، يمكنك استخدام وظيفة النسخ (). مثال:
استيراد نسخة
القائمة الأصلية = [1, 2, 3, [4, 5]]
نسخ_قائمة = نسخ.نسخة (القائمة الأصلية)
طباعة (نسخ_قائمة)
نتيجة لتنفيذ هذا الرمز ، سيكون الإخراج:
[1, 2, 3, [4, 5]]عند تغيير الكائنات المتداخلة ، سيتم عرض التغييرات في كل من الكائن الأصلي والمنسخ. وذلك لأن النسخة السطحية تشير إلى نفس الكائنات المتداخلة.
نسخة عميقة
لإنشاء نسخة عميقة من كائن ، يمكنك استخدام وظيفة ديبكوبي (). مثال:
استيراد نسخة
القائمة الأصلية = [1, 2, 3, [4, 5]]
ديبكوبيد_ليست = نسخ.ديبكوبي (القائمة الأصلية)
طباعة (ديبكوبيد_ليست)
نتيجة لتنفيذ هذا الرمز ، سيكون الإخراج:
[1, 2, 3, [4, 5]]
عند تغيير الكائنات المتداخلة ، لن يتم عرض التغييرات في الكائن الأصلي ، لأن النسخة العميقة تنشئ نسخة مستقلة تماما من الكائن وكائناته المتداخلة.
وحدة النسخ هي أداة ملائمة لإنشاء نسخ من الكائنات في بايثون. اعتمادا على الاحتياجات ، يمكنك الاختيار بين نسخة ضحلة وعميقة.
استخدام قائمة كوسيطة دالة
في لغة برمجة بايثون ، القوائم هي كائنات قابلة للتغيير ، مما يعني أنه يمكن تعديلها بعد الإنشاء. في بعض الأحيان يكون من الضروري تمرير قائمة كوسيطة إلى وظيفة من أجل إجراء عمليات على عناصرها أو تغيير محتوياتها. في هذا القسم ، سننظر في كيفية استخدام قائمة بشكل صحيح كوسيطة لدالة.
لتمرير قائمة كوسيطة إلى وظيفة ، تحتاج فقط إلى تحديد اسم القائمة بين قوسين عند استدعاء الدالة. على سبيل المثال:
ديف برينتليست(قائمتي):
للعنصر في قائمتي:
طباعة (البند)
قائمتي = [1, 2, 3, 4, 5]
قائمة الطباعة (قائمتي)
في هذا المثال ، نعلن عن وظيفة قائمة الطباعة ، والتي تأخذ الوسيطة قائمتي — قائمة. داخل الوظيفة ، نذهب فقط من خلال عناصر القائمة وطباعتها. ثم نقوم بإنشاء قائمة بلدي مع القيم [1, 2, 3, 4, 5] ونحن ندعو وظيفة برينتليست ، تمرير قائمتنا إليها كحجة.
نتيجة لتنفيذ هذا الرمز ، سيكون الإخراج:
1
2
3
4
5
يمكنك أيضا تغيير القائمة نفسها داخل الوظيفة. على سبيل المثال:
قائمتي [أنا] + = 1
قائمتي = [1, 2, 3, 4, 5]
إضافة واحد(قائمتي)
طباعة (قائمتي)
في هذا المثال ، نعلن عن وظيفة إضافة واحد ، والتي تأخذ وسيطة قائمتي-قائمة. داخل الوظيفة ، نذهب من خلال فهارس القائمة وزيادة كل عنصر بنسبة 1. ثم نقوم بإنشاء قائمة بلدي مع القيم [1, 2, 3, 4, 5] ونحن ندعو وظيفة أد واحد ، ويمر قائمتنا إليها كوسيطة. بعد استدعاء الدالة ، نقوم بطباعة قائمة قائمتي ونرى أن قيمها قد تغيرت:
[2, 3, 4, 5, 6]
من المهم أن تتذكر أنه عند تمرير قائمة كوسيطة إلى دالة ، فإننا نمرر إشارة إلى هذه القائمة ، وليس نسخة منها. هذا يعني أن أي تغييرات يتم إجراؤها على القائمة داخل الوظيفة ستنعكس على القائمة نفسها خارج الوظيفة.
إذا كنت بحاجة إلى العمل مع نسخة من القائمة بدلا من القائمة الأصلية ، فيمكنك استخدام
طريقة النسخ ()
قائمة جديدة=قائمتي.نسخة()
قائمة جديدة.إلحاق (6)
عودة جديدة_قائمة
طباعة (قائمتي)
طباعة (قائمة معدلة)
في هذا المثال ، نعلن عن وظيفة قائمة التعديل ، والتي تأخذ الوسيطة قائمتي — قائمة. داخل الوظيفة ، نقوم بإنشاء نسخة من القائمة باستخدام الطريقة
نسخة()
، أضف البند 6 إلى نسخة القائمة وأعد هذه النسخة. ثم نقوم بإنشاء قائمة بلدي مع القيم [1, 2, 3, 4, 5] ونحن ندعو وظيفة موديفيليست ، تمرير قائمتنا إليها كوسيطة. يتم تخزين نتيجة استدعاء الوظيفة في متغير القائمة المعدلة. من خلال طباعة كلتا القائمتين ، يمكننا أن نرى أنهما مختلفان:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
وبالتالي ، يمكننا استخدام القوائم كوسائط للوظائف ، وتنفيذ العمليات على عناصرها ، وتغيير محتوياتها. إذا كنت بحاجة إلى العمل مع نسخة من القائمة ، يمكنك استخدام