تم حلها: إعادة تسمية التكرارات في قائمة python

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

def rename_duplicates(lst): 
    seen = set() 
    new_lst = [] 

    for item in lst: 
        if item not in seen: 
            seen.add(item) 
            new_lst.append(item) 
        else: 
            new_item = item + '_1'   # append a suffix to make it unique  

            while new_item in seen:   # increment the suffix until it's unique  
                suffix = int(new_item.split('_')[-1]) + 1   # get the last number and add one to it  
                new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffix)

            seen.add(new_item)     # add the newly created item to the set of seen items  
            new_lst.append(new_item)     # append the newly created item to the list

    return new

_lst

# يعرّف هذا الرمز وظيفة تسمى rename_duplicates تأخذ في القائمة كوسيطة.
def rename_duplicates (lst):

# ثم يقوم بإنشاء مجموعة فارغة تسمى شوهد وقائمة فارغة تسمى new_lst.
ينظر = مجموعة ()
new_lst = []

# ثم يتكرر من خلال العناصر الموجودة في القائمة ويتحقق مما إذا كانت موجودة بالفعل في مجموعة العناصر المرئية.
للعنصر في lst:
إذا لم يكن العنصر مرئيًا: # إذا لم يكن موجودًا ، فإنه يضيفه إلى مجموعة العناصر المرئية ويلحقه بالقائمة الجديدة.
رأيت.إضافة (عنصر)
new_lst.append (item) # إذا كان الأمر كذلك ، فإنه يقوم بإنشاء إصدار فريد من هذا العنصر عن طريق إضافة لاحقة (على سبيل المثال ، "_1") إلى اسمه والتحقق مما إذا كان هذا العنصر الذي تم إنشاؤه حديثًا موجودًا بالفعل في مجموعة العناصر المرئية.

else: # إذا كان الأمر كذلك ، فإنه يزيد اللاحقة حتى يعثر على نسخة غير مستخدمة من اسم العنصر ويضيف هذا العنصر الذي تم إنشاؤه حديثًا إلى كل من مجموعة العناصر المرئية والقائمة الجديدة قبل إرجاع هذه القائمة الجديدة في نهاية تنفيذها.

new_item = عنصر + '_1'

بينما new_item في المشاهدة: # زيادة لاحقة حتى فريد

لاحقة = int (new_item.split ('_') [- 1]) + 1 # احصل على الرقم الأخير وأضف واحدًا إليه

new_item = '{} _ {}'. تنسيق ('_'. انضم (new_item.split ('_') [: - 1]) ، لاحقة)

رأيت إضافة (جديد

القوائم في بايثون

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

لإنشاء قائمة في Python ، يمكنك استخدام أقواس مربعة وفصل كل عنصر بفاصلة:

my_list = [1، 2، 3]

يمكنك الوصول إلى العناصر الفردية في القائمة باستخدام الفهرس الخاص بهم:
my_list [0] # إرجاع 1
my_list [1] # إرجاع 2
my_list [2] # إرجاع 3

يمكنك أيضًا استخدام المؤشرات السالبة للوصول إلى العناصر من نهاية القائمة:

my_list [-1] # إرجاع 3 (العنصر الأخير)

يمكنك إضافة عناصر إلى قائمة باستخدام طريقة append ():

my_list.append (4) # يضيف 4 في نهاية القائمة

يمكنك إزالة العناصر من القائمة باستخدام طريقة الإزالة () أو المنبثقة ():

my_list.remove (3) # يزيل 3 من القائمة

my_list.pop (2) # يزيل ويعيد 2 (العنصر الثالث) من القائمة

إعادة تسمية التكرارات في القائمة في Python

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

# إنشاء قاموس فارغ
تعيين = {}

# كرر على القائمة الأصلية
للعنصر في قائمتي:
# تحقق مما إذا كان العنصر موجودًا بالفعل في القاموس
إذا لم يكن العنصر في التعيين:
# إذا لم يكن كذلك ، قم بإضافته إلى القاموس وقم بتعيين مربعه كقيمة
تعيين [item] = item * item

# إنشاء قائمة نتائج فارغة
result_list = []

# كرر القائمة الأصلية مرة أخرى واستبدل كل عنصر بمربعه من القاموس لـ i في my_list: result_list.append (تعيين [i])

# طباعة نتيجة الطباعة (نتيجة_قائمة)

الوظائف ذات الصلة:

اترك تعليق