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

استفسار عن عملية ترتيب القائمة باستخدام itemgetter وحدة operator في بايثون

Am Fm

السؤال

السلام عليكم ورحمة الله وبركاته 

from operator import itemgetter

a=[("Ahmad","Sudan", 23),("Ali","Jordan", 45),("Adam","Sudan", 23)]

b=sorted(a,key=itemgetter(1,2))

print(b) 

اذا كان هنالك اكثر من عنصر متشابه ،
على اي اساس يتم الترتيب؟

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يتم الترتيب على أساس البلد أولاً، ثم على أساس العمر، وفي حال وجود أكثر من عنصر متشابه في الاسم، فسيتم الترتيب على أساس العمر.

حيث تتم عملية الترتيب باستخدام الدالة sorted() مع استخدام itemgetter(1, 2) كوظيفة مفتاح، وذلك يعني أنه يتم ترتيب القائمة a بناءًاعلى القيم في المواقع 1 و 2 في كل tuple داخل القائمة.

حيث ترُتب القائمة لديك كالتالي:

b = [('Ali', 'Jordan', 45), ('Ahmad', 'Sudan', 23), ('Adam', 'Sudan', 23)]

في حال وجود عناصر متشابهة في الموقعين 1 و 2، يتم الاحتفاظ بالترتيب الأصلي لتلك العناصر. 

وتستطيع تغيير ترتيب العناصر المتشابهة عن طريق تغيير ترتيب الوسائط التي يتم تمريرها إلى الدالة itemgetter().

فلو أردت ترتيب العناصر المتشابهة على أساس العمر أولاً، ثم على أساس البلد، فسنقوم بتغيير الوسائط على النحو التالي:

b = sorted(a, key=itemgetter(2, 1))

فسيتم ترتيب القائمة على النحو التالي:

b = [("Ahmad", "Sudan", 23), ("Ahmad", "Sudan", 23), ("Ali", "Jordan", 45)]

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...