فرز قوائم القوائم ذات الترتيب المختلط
بالنظر إلى قائمة تحتوي على عنصرين، قد يكون فرزها بترتيب معين أمرًا صعبًا. عادة، يتم الفرز باستخدام معيار واحد. ومع ذلك، في هذه الحالة، نحتاج إلى الفرز بناءً على العنصر الأول بترتيب تنازلي والعنصر الثاني بترتيب تصاعدي.
لتحقيق هذا الفرز المختلط، يمكننا استخدام وظائف لامدا وطريقة الفرز في بايثون. تأخذ الوسيطة الرئيسية لأسلوب الفرز وظيفة تحدد ترتيب الفرز. الوظيفة التي نقدمها ستأخذ في الاعتبار كلا العنصرين في كل قائمة.
لإنشاء مفتاح مدمج يتعامل مع كلا العنصرين، يمكننا استخدام وظيفة لامدا التالية:
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]]
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3