كيفية إزالة التكرارات من قائمة في Python
⚡ ملخص ذكي
إزالة العناصر المكررة من Python يمكن إنشاء القوائم باستخدام العديد من الأساليب المدمجة، بما في ذلك set() و dict.fromkeys() والحلقات وفهم القوائم وطرق المكتبة من NumPy و Pandas، حيث يوازن كل منها بين الحفاظ على الترتيب والسرعة.

Python إزالة التكرارات من القائمة
القائمة عبارة عن حاوية تحتوي على عناصر مختلفة Python كائنات، والتي يمكن أن تكون أعدادًا صحيحة أو كلمات أو قيمًا وما إلى ذلك. وهي تعادل مصفوفة في لغات البرمجة الأخرى.
سنستعرض هنا طرقًا مختلفة لإزالة العناصر المكررة من قائمة معينة. Python.
الطريقة الأولى) إزالة التكرارات من القائمة باستخدام Set
لإزالة العناصر المكررة من قائمة، يمكنك استخدام الدالة المدمجة set(). تتميز هذه الدالة بأنها تُرجع عناصر فريدة.
لدينا قائمة: [1,1,2,3,2,2,4,5,6,2,1]. تحتوي القائمة على العديد من العناصر المكررة التي نحتاج إلى إزالتها لاستعادة العناصر المميزة فقط. يتم تمرير القائمة إلى الدالة المدمجة 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]
الطريقة الثانية) استخدام القائمة المؤقتة
لإزالة العناصر المكررة من قائمة معينة، يمكنك استخدام قائمة مؤقتة فارغة. للقيام بذلك، عليك أولاً المرور على القائمة التي تحتوي على عناصر مكررة وإضافة العناصر الفريدة إلى القائمة المؤقتة. 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 من مكتبة collections. هذه المكتبة متوفرة في بايثون بدءًا من الإصدار 2.7. تتولى OrderedDict مهمة إرجاع العناصر المميزة بالترتيب الذي يظهر به المفتاح.
لنستخدم قائمة ونستخدم طريقة fromkeys() المتوفرة في OrderedDict للحصول على العناصر الفريدة من القائمة.
لاستخدام طريقة OrderedDict.fromkeys()، يجب عليك استيراد OrderedDict من collections، كما هو موضح أدناه:
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() على قائمة للحصول على العناصر الفريدة:
مثال
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]
الطريقة الخامسة) استخدام فهم القائمة
قائمة الفهم هي Python الوظائف المستخدمة لإنشاء تسلسلات جديدة (مثل القوائم والقواميس وما إلى ذلك) باستخدام التسلسلات التي تم إنشاؤها بالفعل. يساعدك هذا على تقليل الحلقات الأطول وتسهيل قراءة التعليمات البرمجية وصيانتها.
دعونا نستفيد من فهم القائمة لإزالة التكرارات من القائمة المقدمة.
مثال
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]
الطريقة السادسة: استخدام دالة unique() في NumPy
يمكن أن تساعدنا الدالة unique() من وحدة NumPy في إزالة العناصر المكررة من القائمة المعطاة.
للعمل مع NumPy، قم أولاً باستيراد وحدة numpy:
الخطوة 1) استيراد وحدة NumPy
import numpy as np
الخطوة 2) استخدم قائمتك التي تحتوي على عناصر مكررة داخل دالة unique(). سيتم تحويل الناتج مرة أخرى إلى قائمة باستخدام دالة 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 على طريقة فريدة () والتي ستمنحنا العناصر الفريدة من القائمة المعطاة.
للعمل مع وحدة 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() لإزالة العناصر المكررة. تُعيد دالة enumerate() كائنًا يحتوي على عداد لكل عنصر في القائمة، مثل (0,1)، (1,2)، وهكذا. القيمة الأولى هي الفهرس، والقيمة الثانية هي عنصر القائمة.
يتم فحص كل عنصر لمعرفة ما إذا كان موجودًا في القائمة، وإذا كان موجودًا، تتم إزالته من القائمة.
مثال
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]
