اذهب إلى المحتوى
  • 0

معرفة الإختلافات بين قائمتين في بايثون؟

Adam Ebrahim

السؤال

لدي قائمتين بالشكل التالي:

lst1 = ['One', 'Two', 'Three', 'Four']
lst2  = ['One', 'Two']

كيف أحصل على العناصر الموجودة في القائمة الأولى وغير الموجودة في القائمة الثانية، لتكون النتيجة في النهاية:

result = ['Three', 'Four']

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يمكنك تحقيق ذلك أيضاً من خلال التالي

s = set(list2) #set ل  list2 نحول أولاً ال
list3 = [x for x in list1 if x not in s] #temp3 نقومب إرجاع الإختلافات بينهما في ال 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكن عمل الفلترة بدون set حتى:

temp3 = [item for item in temp1 if item not in temp2]

يمكن استخدام المكتبة deepdiff:

# تنصيب
pip install deepdiff

>>> t1 = {1:1, 2:2, 3:3}
>>> t2 = {1:1, 2:4, 3:3}
>>> pprint(DeepDiff(t1, t2), indent=2)
{'values_changed': {'root[2]': {'newvalue': 4, 'oldvalue': 2}}}

توثيق المكتبة: deepdiff

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك إستخدام معامل XOR بايثون

  • هذا سيقوم بإزالة المكرارات في كل قائمة
set(lst1) ^ set(lst2)

يمكنك إستخدامه كالآتي

lst1 = ['One', 'Two', 'Three', 'Four']
lst2  = ['One', 'Two']

lst3 = set(lst1) ^ set(lst2)
print(lst3)

ويمكنك إستخدام الدالة من هذا الكود

lst1 = ['One', 'Two', 'Three', 'Four']
lst2  = ['One', 'Two']

def Diff(li1, li2):
    return list(set(li1) - set(li2)) + list(set(li2) - set(li1))
 
print(Diff(lst1,lst2))

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...