إزالة العنصر من أ Python قائمة [مسح، فرقع، إزالة، ديل]

⚡ ملخص ذكي

إزالة العناصر من Python تعتمد القائمة على ثلاث طرق مدمجة، remove() و pop() و clear()، بالإضافة إلى الكلمة المفتاحية del، حيث تستهدف كل منها عنصرًا بالقيمة أو بالفهرس أو مسح القائمة بأكملها في مكانها.

  • 🔘 دالة remove(): تقوم الدالة remove() بحذف العنصر الأول الذي يطابق قيمة معينة وتثير خطأ ValueError عندما تكون القيمة غائبة.
  • ☑️ دالة pop(): تقوم الدالة pop() بإزالة عنصر عند فهرس معين وإعادته، وتعود افتراضياً إلى العنصر الأخير عندما لا يتم تمرير أي فهرس.
  • ✅ حذف الكلمة المفتاحية: تقوم الكلمة المفتاحية del بحذف عنصر أو شريحة كاملة بواسطة الفهرس، ويمكنها أيضًا إزالة متغير القائمة.
  • 🧪 دالة clear(): تقوم الدالة clear() بتفريغ القائمة في مكانها، تاركةً قائمة موجودة ولكن بطول صفر.
  • 🛠️ القيمة مقابل المؤشر: استخدم الدالة remove() عندما تكون القيمة معروفة، واستخدم الدالة pop() أو del عندما يكون الموضع معروفًا.
  • 🤖 سير عمل الذكاء الاصطناعي: تقوم عملية تنظيف بيانات التعلم الآلي بإزالة العينات غير المرغوب فيها من القوائم باستخدام عمليات الفهم قبل تدريب النموذج.

إزالة عنصر من Python قائمة

Python يساعدك نوع بيانات القائمة على تخزين عناصر من أنواع بيانات مختلفة في تسلسل مرتب. تُكتب البيانات داخل أقواس مربعة ([])، وتُفصل القيم بفاصلة (,).

In Python، هناك العديد من الطرق المتاحة في نوع بيانات القائمة والتي تساعدك على إزالة عنصر من قائمة معينة. الأساليب هي إزالة ()، البوب ​​() و واضح().

بالإضافة إلى طرق القائمة، يمكنك أيضًا استخدام من الكلمة الأساسية لإزالة العناصر من القائمة.

مثال على القائمة

my_list = ['Guru', 50, 11.50, 'Siya', 50, ['A', 'B', 'C']]

يبدأ الفهرس من 0. في القائمة my_list، عند الفهرس 0 لدينا السلسلة 'Guru'.

  • عند الفهرس: 1 ستحصل على الرقم 50 وهو عدد صحيح.
  • في الفهرس:2 سوف تحصل على الرقم العائم 11.50
  • في الفهرس:3، هناك سلسلة 'Siya'.
  • في الفهرس:4، سترى الرقم 50 مكررًا.
  • في الفهرس:5، سوف تحصل على قائمة بالقيم A وB وC.

Python طريقة إزالة ()

الدالة remove() هي دالة مدمجة متاحة مع القائمة. وهي تساعد على إزالة أول عنصر مطابق من القائمة.

بناء الجملة:

list.remove(element)

العنصر الذي تريد إزالته من القائمة.

قيمة الإرجاع

لا توجد قيمة إرجاع لهذا الأسلوب.

نصائح لاستخدام دالة remove()

فيما يلي النقاط المهمة التي يجب تذكرها عند استخدام دالة remove():

  • عندما تحتوي القائمة على عناصر مكررة، ستتم إزالة العنصر الأول الذي يطابق العنصر المحدد من القائمة.
  • إذا كان العنصر المحدد غير موجود في القائمة، فسيظهر خطأ يفيد بأن العنصر غير موجود في القائمة.
  • لا تُرجع الدالة remove() أي قيمة.
  • تأخذ الدالة remove() القيمة كوسيط، لذلك يجب تمرير القيمة بنوع البيانات الصحيح.

مثال: استخدام دالة remove() لإزالة عنصر من القائمة

إليكم قائمة نموذجية لدي:

my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya']

تحتوي القائمة على عناصر من نوعي البيانات النصية والرقمية. وتحتوي القائمة على عناصر مكررة مثل الرقم 12 والنص "ريا".

my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya']
my_list.remove(12) # it will remove the element 12 at the start.
print(my_list)
my_list.remove('Riya') # will remove the first Riya from the list
print(my_list)
my_list.remove(100)  #will throw an error
print(my_list)

الإخراج:

['Siya', 'Tiya', 14, 'Riya', 12, 'Riya']
['Siya', 'Tiya', 14, 12, 'Riya']
Traceback (most recent calllast):
File "display.py", line 9, in <module>
    my_list.remove(100)
ValueError: list.remove(x): x not in the list

Python طريقة pop ()

تقوم طريقة pop() بإزالة عنصر من القائمة بناءً على الفهرس المعطى.

بناء الجملة

list.pop(index)

الفهرس: تحتوي طريقة pop() على وسيطة واحدة فقط تسمى الفهرس.

  • لحذف عنصر من القائمة، عليك تمرير فهرس ذلك العنصر. يبدأ الفهرس من 0. للحصول على العنصر الأول من القائمة، مرر الفهرس كـ 0. لحذف العنصر الأخير، يمكنك تمرير الفهرس كـ -1.
  • وسيطة الفهرس اختيارية. إذا لم يتم تمريره، تعتبر القيمة الافتراضية -1، ويتم إرجاع العنصر الأخير من القائمة.
  • إذا كان الفهرس المعطى غير موجود، أو خارج النطاق، فإن الأسلوب pop() يلقي خطأ يقول خطأ في الفهرس: فهرس منبثق.

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

ستعيد طريقة pop() العنصر الذي تمت إزالته بناءً على الفهرس المعطى. يتم أيضًا تحديث القائمة النهائية ولن تحتوي على العنصر.

مثال: استخدام دالة pop() لإزالة عنصر من القائمة

القائمة التي سنستخدمها في المثال هي my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya'].

لنحاول إزالة عنصر باستخدام دالة pop() بناءً على ما يلي:

  • من خلال إعطاء الفهرس
  • بدون فهرس
  • تمرير المؤشر الذي هو خارج النطاق.

هنا، نقوم بإزالة تيا من القائمة. يبدأ الفهرس من 0، لذا فإن فهرس لـ تيا هو 2.

my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya']

#By passing index as 2 to remove Tiya
name = my_list.pop(2)
print(name)
print(my_list)

#pop() method without index – returns the last element
item = my_list.pop()
print(item)
print(my_list)

#passing index out of range
item = my_list.pop(15)
print(item)
print(my_list)

الإخراج:

Tiya
[12, 'Siya', 14, 'Riya', 12, 'Riya']
Riya
[12, 'Siya', 14, 'Riya', 12]
Traceback (most recent calllast):
File "display.py", line 14, in <module>
item = my_list.pop(15)
IndexError: popindex out of range

Python طريقة () واضحة

ستقوم الطريقة الواضحة () بإزالة جميع العناصر الموجودة في القائمة.

بناء الجملة:

list.clear()

المعلمات:

لا توجد معلمات.

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

لا توجد قيمة مُعادة. يتم تفريغ القائمة باستخدام الدالة clear().

مثال: استخدام دالة clear() لإزالة جميع العناصر من القائمة

سوف تقوم الطريقة الواضحة () بإفراغ القائمة المحددة. دعونا نرى طريقة عمل Clear() في المثال أدناه:

my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya']

#Using clear() method
element = my_list.clear()
print(element)
print(my_list)

الإخراج:

None
[]

باستخدام الكلمة الأساسية del

لإزالة عنصر من القائمة، يمكنك استخدام من الكلمة الأساسية متبوعة بقائمة. يجب عليك تمرير فهرس العنصر إلى القائمة. يبدأ المؤشر عند 0.

بناء الجملة:

del list[index]

يمكنك أيضًا تقسيم مجموعة من العناصر من القائمة باستخدام الملف من الكلمة المفتاحية. يمكن تحديد فهرس البداية/النهاية من القائمة باستخدام الكلمة المفتاحية del، وسيتم حذف العناصر التي تقع ضمن هذا النطاق. الصيغة كالتالي:

بناء الجملة:

del list[start:stop]

إليك مثال يوضح كيفية إزالة العنصر الأول، والعنصر الأخير، وعناصر متعددة من القائمة باستخدام من.

my_list = list(range(15))
print("The Original list is ", my_list)

#To remove the firstelement
del my_list[0]
print("After removing first element", my_list)

#To remove last element
del my_list[-1]
print("After removing last element", my_list)

#To remove element for given index : for example index:5
del my_list[5]
print("After removing element from index:5", my_list)

#To remove last 2 elements from the list
del my_list[-2]
print("After removing last 2 elements", my_list)

#To remove multiple elements
delmy_list[1:5]
print("After removing multiple elements from start:stop index (1:5)", my_list)

#To remove multiple elements
del my_list[4:]
print("To remove elements from index 4 till the end (4:)", my_list)

الإخراج:

The Originallist is  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
After removing first element [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
After removing last element [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
After removing element from index:5 [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13]
After removing last 2 elements [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13]
After removing multiple elements from start:stop index (1:5) [1, 7, 8, 9, 10, 11, 13]
To remove elements from index 4 till the end (4:) [1, 7, 8, 9]

كيف يمكنني إزالة العنصر الأول من القائمة؟

يمكنك الاستفادة من أساليب القائمة مثل إزالة ()، البوب ​​() لإزالة العنصر الأول من القائمة. في حالة استخدام دالة remove()، يجب تمرير العنصر الأول المراد إزالته، أما في حالة استخدام دالة pop()، فيجب تمرير فهرس العنصر، أي 0.

يمكنك أيضًا استخدام ملف من الكلمة الأساسية لإزالة العنصر الأول من القائمة.

يوضح المثال أدناه كيفية إزالة العنصر الأول من القائمة باستخدام remove() و pop() و del.

my_list1 = ['A', 'B', 'C', 'D', 'E', 'F']
print("The Originallist is ", my_list1)
#Using remove() to remove first element
my_list1.remove('A')
print("Using remove(), the final list is ", my_list1)

my_list1 = ['A', 'B', 'C', 'D', 'E', 'F']
print("The Originallist is ", my_list1)
#Using pop() to remove the first element
element = my_list1.pop(0)
print("The first element removed from my_list1 is ", element)
print("Using pop(), the final list is ", my_list1)

#Using del to remove the first element
my_list2 = ['A', 'B', 'C', 'D', 'E', 'F']
del my_list2[0]
print("Using del, the final list is ", my_list2)

الإخراج:

The Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
Using remove(), the final list is  ['B', 'C', 'D', 'E', 'F']
The Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
The first element removed from my_list1 is  A
Using pop(), the final list is  ['B', 'C', 'D', 'E', 'F']
Using del, the final list is  ['B', 'C', 'D', 'E', 'F']

كيف يمكنني إزالة عناصر متعددة من القائمة في Python?

تُستخدم الدالتان remove() و pop() في القوائم لإزالة عنصر واحد. لإزالة عدة عناصر، استخدم الدالة من الكلمة.

من القائمة ['A', 'B', 'C', 'D', 'E', 'F']، نريد حذف العناصر B وC وD. يوضح المثال أدناه كيفية استخدام من الكلمة الأساسية لإزالة العناصر.

#Using del to remove the multiple elements from list
my_list2 = ['A', 'B', 'C', 'D', 'E', 'F']
print("Originallist is ", my_list2)
del my_list2[1:4]
print("Using del, the final list is ", my_list2)

الإخراج:

Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
Using del, the final list is  ['A', 'E', 'F']

كيف يمكنني إزالة عنصر من القائمة باستخدام الفهرس في Python?

لإزالة عنصر بناءً على فهرسه، يمكنك استخدام دالة pop() الخاصة بالقائمة. حتى باستخدام من ستساعدك الكلمة الأساسية على إزالة العنصر الخاص بفهرس معين.

#Using del to remove the multiple elements from list
my_list1 = ['A', 'B', 'C', 'D', 'E', 'F']
print("Originallist is ", my_list1)
element = my_list1.pop(2)
print("Element removed for index: 2 is ", element)
print("Using pop, the final list is ", my_list1)

#Using del to remove the multiple elements from list
my_list2 = ['A', 'B', 'C', 'D', 'E', 'F']
print("Originallist is ", my_list2)
del my_list2[2]
print("Using del, the final list is ", my_list2)

الإخراج:

Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
Element removed for index: 2 is  C
Using pop, the final list is  ['A', 'B', 'D', 'E', 'F']
Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
Using del, the final list is  ['A', 'B', 'D', 'E', 'F']

الأسئلة الشائعة

تحذف الدالة remove() أول عنصر يطابق قيمة معينة، بينما تحذف الدالة pop() عنصرًا باستخدام فهرسه وتعيده، أما الدالة del فتحذف عنصرًا أو شريحة باستخدام فهرسه دون إعادة أي شيء. اختر الدالة المناسبة بناءً على معرفتك للقيمة أو الموضع.

تقوم الدالة remove() بحذف أول عنصر مطابق فقط، لذا استخدم صيغة بناء قائمة مثل [x for x in my_list if x != value]. هذا يعيد بناء القائمة بدون أي عنصر مطابق ويحافظ على الترتيب المتبقي سليماً.

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

تقوم الدالة clear() بتفريغ القائمة في مكانها بينما تبقيping يؤدي حذف المتغير my_list وأي مراجع تشير إليه إلى نفس القائمة الفارغة الآن إلى إزالة المتغير بالكامل، لذا فإن الإشارة إليه بعد ذلك تؤدي إلى ظهور خطأ NameError.

تُجري الدوال remove() و pop() و clear() و del تغييرات على القائمة في مكانها. تُعيد الدالة pop() فقط العنصر المحذوف، بينما تُعيد الدوال الأخرى None أو لا تُعيد أي شيء. أما بناء قائمة جديدة، فيُنشئ قائمة جديدة منفصلة ويترك القائمة الأصلية دون تغيير.

يُعدّ استدعاء دالة remove() بشكل متكرر بطيئًا لأن كل استدعاء يُعيد فحص القائمة. أما إعادة بناء القائمة باستخدام دالة list comprehension واحدة أو دالة filter() فتتم في عملية واحدة، وهي أسرع بكثير للقوائم الكبيرة عند حذف العديد من القيم.

تتضمن عملية إعداد البيانات للتعلم الآلي إزالة العينات غير المرغوب فيها، والقيم الشاذة، أو التصنيفات غير الصحيحة من القوائم قبل تحويلها إلى مصفوفات. تضمن عملية الإزالة النظيفة باستخدام عبارات الفهم أو مكتبة Pandas اتساق بيانات التدريب وتمنع انحراف نتائج النموذج.

نعم. يقوم GitHub Copilot ومساعدو الذكاء الاصطناعي بإنشاء تعليمات برمجية تعتمد على remove() و pop() و del و comprehension من تعليق عادي، ويقترحون الخيار الأكثر أمانًا لحالتك، ويعيدون هيكلة الحلقات، على الرغم من أنه لا يزال يتعين عليك اختبار الحالات الشاذة مثل القيم المفقودة.

تلخيص هذه التدوينة بـ: