كيفية إزالة التكرارات من قائمة في بايثون

تقوم Python بإزالة التكرارات من القائمة

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

سنستعرض هنا طرقًا مختلفة يمكننا من خلالها إزالة التكرارات من قائمة معينة في بايثون.

الطريقة الأولى) إزالة التكرارات من القائمة باستخدام Set

لإزالة التكرارات من القائمة، يمكنك الاستفادة من الوظيفة المضمنة set(). تخصص طريقة set() هو أنها تقوم بإرجاع عناصر مميزة.

لدينا قائمة: [1,1,2,3,2,2,4,5,6,2,1،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX]. تحتوي القائمة على العديد من التكرارات التي نحتاج إلى إزالتها واستعادة العناصر المميزة فقط. يتم تسليم القائمة إلى set() وظيفة مدمجة. Later يتم عرض القائمة النهائية باستخدام list() وظيفة مدمجة، كما هو موضح في المثال أدناه.


الإخراج الذي نحصل عليه هو عناصر مميزة حيث يتم التخلص من جميع العناصر المكررة.
مثال

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

الإخراج:

[1, 2, 3, 4, 5, 6]

الطريقة الثانية) استخدام القائمة المؤقتة

لإزالة التكرارات من معين listيمكنك الاستفادة من القائمة المؤقتة الفارغة. للقيام بذلك أولاً، سيتعين عليك التنقل عبر القائمة التي تحتوي على نسخ مكررة وإضافة العناصر الفريدة إلى القائمة المؤقتة. Later يتم تعيين القائمة المؤقتة إلى القائمة الرئيسية.

مثال
فيما يلي مثال عملي باستخدام القائمة المؤقتة.

my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("List Before ", my_list)
temp_list = []

for i in my_list:
    if i not in temp_list:
        temp_list.append(i)

my_list = temp_list

print("List After removing duplicates ", my_list)

الإخراج:

List Before  [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates  [1, 2, 3, 4, 5, 6]

الطريقة الثالثة) استخدام الإملاء

يمكننا إزالة التكرارات من القائمة المحددة عن طريق الاستيراد OrderedDict من المجموعات. وهو متاح من python2.7 وما بعده. يعتني OrderedDict بإعادة العناصر المميزة إليك بالترتيب الذي يوجد به المفتاح.

دعونا نستفيد من القائمة ونستخدمها fromkeys() الطريقة المتاحة في OrderedDict للحصول على العناصر الفريدة من القائمة.

للاستفادة من OrderedDict.fromkey() الطريقة، يجب عليك استيراد OrderedDict من المجموعات، كما هو موضح أدناه:

from collections import OrderedDict

فيما يلي مثال لإزالة التكرارات باستخدام OrderedDict.fromkeys() الأسلوب.

مثال

from collections import OrderedDict

my_list = ['a','x','a','y','a','b','b','c']

my_final_list = OrderedDict.fromkeys(my_list)

print(list(my_final_list))

الإخراج:

['a', 'x', 'y', 'b', 'c']

بدءًا من إصدار Python 3.5+ وما بعده، يمكننا الاستفادة من الإصدار العادي dict.fromkeys() للحصول على العناصر المميزة من القائمة. ال dict.fromkeys() تُرجع الأساليب مفاتيح فريدة وتساعد في التخلص من القيم المكررة.

مثال يوضح عمل dict.fromkeys() في القائمة لإعطاء العناصر الفريدة هي كما يلي:

مثال

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

الإخراج:

['a', 'x', 'y', 'b', 'c']

الطريقة الرابعة) استخدام الحلقة

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

قم أولاً بتهيئة الصفيف لإفراغه على سبيل المثال myFinallist = [].داخل حلقة for، قم بإضافة التحقق من وجود العناصر الموجودة في القائمة في المصفوفة myFinallist. إذا كانت العناصر غير موجودة، قم بإضافة العنصر إلى المصفوفة myFinallist باستخدام الأمر append() الأسلوب.

لذا، كلما تمت مواجهة العنصر المكرر، سيكون موجودًا بالفعل في المصفوفة myFinallist ولن يتم إدراجه. دعونا الآن نتحقق من الأمر نفسه في المثال أدناه:

مثال

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
    if i not in myFinallist:
myFinallist.append(i)
print(list(myFinallist))

الإخراج:

[1, 2, 3, 4, 5, 6]

الطريقة الخامسة) استخدام فهم القائمة

عمليات فهم القائمة هي وظائف بايثون تُستخدم لإنشاء تسلسلات جديدة (مثل القوائم والقواميس وما إلى ذلك) باستخدام التسلسلات التي تم إنشاؤها بالفعل. يساعدك هذا على تقليل الحلقات الأطول وتسهيل قراءة التعليمات البرمجية الخاصة بك وصيانتها.

دعونا نستفيد من فهم القائمة لإزالة التكرارات من القائمة المقدمة.

مثال

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = []
[my_finallist.append(n) for n in my_list if n not in my_finallist] 
print(my_finallist)

الإخراج:

[1, 2, 3, 4, 5, 6]

الطريقة 6) استخدام طريقة Numpy الفريدة ().

الأسلوب unique() من وحدة Numpy يمكن أن تساعدنا في إزالة التكرارات من القائمة المقدمة.

للعمل مع Numpy أولًا قم باستيراد وحدة numpy، عليك اتباع الخطوات التالية:

الخطوة1) استيراد وحدة Numpy

import numpy as np

الخطوة 2) استخدم قائمتك مع التكرارات داخل الطريقة الفريدة كما هو موضح أدناه. يتم تحويل الإخراج مرة أخرى إلى تنسيق القائمة باستخدام tolist() الأسلوب.

myFinalList = np.unique(my_list).tolist()

الخطوة 3) أخيرًا قم بطباعة القائمة كما هو موضح أدناه:

print(myFinalList)

الكود النهائي مع الإخراج هو كما يلي:

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

الإخراج:

[1, 2, 3, 4, 5, 6]

الطريقة 7) استخدام أساليب الباندا

تحتوي وحدة Pandas على unique() الطريقة التي ستمنحنا العناصر الفريدة من القائمة المقدمة.

للعمل مع وحدة Pandas، عليك اتباع الخطوات التالية:

الخطوة 1) استيراد وحدة الباندا

import pandas as pd

الخطوة 2) استخدم قائمتك مع التكرارات في الداخل unique() الطريقة كما هو موضح أدناه:

myFinalList = pd.unique(my_list).tolist()

الخطوة 3) اطبع القائمة كما هو موضح أدناه:

print(myFinalList)

الكود النهائي مع الإخراج هو كما يلي:

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

الإخراج:

[1, 2, 3, 4, 5, 6]

الطريقة الثامنة) استخدام التعداد () وفهم القائمة

هنا يتم الجمع بين فهم القائمة والتعداد لإزالة العناصر المكررة. يقوم الدالة Enumerate بإرجاع كائن يحتوي على عداد لكل عنصر في القائمة. على سبيل المثال (0,1)، (1,2،XNUMX) وما إلى ذلك. هنا القيمة الأولى هي الفهرس، والقيمة الثانية هي عنصر القائمة. دبليو

يتم التحقق من كل عنصر إذا كان موجودًا في القائمة، وإذا كان موجودًا، فسيتم إزالته من القائمة.

مثال

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] 
print(list(my_finallist))

الإخراج:

[1, 2, 3, 4, 5, 6]

نبذة عامة

  • لإزالة التكرارات من القائمة، يمكنك الاستفادة من الوظيفة المضمنة set(). تخصص ال set() الطريقة هي أنها تقوم بإرجاع عناصر مميزة.
  • يمكنك إزالة التكرارات من القائمة المحددة عن طريق الاستيراد OrderedDictfrom مجموعات. وهو متاح من python2.7 وما بعده. OrderedDictdict يعتني بإعادة العناصر المميزة إليك بالترتيب الذي يوجد به المفتاح.
  • يمكنك الاستفادة من حلقة for-loop التي سنقوم من خلالها باجتياز قائمة العناصر لإزالة التكرارات.
  • الأسلوب unique() من وحدة Numpy يمكن أن تساعدنا في إزالة التكرارات من القائمة المقدمة.
  • تحتوي وحدة Pandas على unique() الطريقة التي ستمنحنا العناصر الفريدة من القائمة المقدمة.
  • يتم استخدام مزيج من فهم القائمة والتعداد لإزالة العناصر المكررة من القائمة. يقوم الدالة Enumerate بإرجاع كائن يحتوي على عداد لكل عنصر في القائمة.