"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية فرز قوائم القوائم بالترتيب المختلط؟

كيفية فرز قوائم القوائم بالترتيب المختلط؟

تم النشر بتاريخ 2024-11-08
تصفح:631

How to Sort Lists of Lists with Mixed Ordering?

فرز قوائم القوائم ذات الترتيب المختلط

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

لتحقيق هذا الفرز المختلط، يمكننا استخدام وظائف لامدا وطريقة الفرز في بايثون. تأخذ الوسيطة الرئيسية لأسلوب الفرز وظيفة تحدد ترتيب الفرز. الوظيفة التي نقدمها ستأخذ في الاعتبار كلا العنصرين في كل قائمة.

لإنشاء مفتاح مدمج يتعامل مع كلا العنصرين، يمكننا استخدام وظيفة لامدا التالية:

lambda k: (k[0], -k[1])

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

الآن، يمكننا استخدام دالة لامدا هذه في طريقة الفرز:

L.sort(key=lambda k: (k[0], -k[1]), reverse=True)

تحدد الوسيطةverse=True أن الفرز يجب أن يتم بترتيب عكسي، وهو ما يتوافق مع متطلباتنا الخاصة بالترتيب التنازلي للعنصر الأول.

نتيجة لذلك، سيتم ترتيب القائمة L بحيث يكون العنصر الأول تنازليًا والعنصر الثاني تصاعديًا:

[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
بيان الافراج أعيد طبع هذه المقالة على: 1729499538 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3