में कस्टम सॉर्ट मैं पाइथन 3 सीखने से शुरू कर रहा हूं। मैं सोच रहा हूं कि कस्टम प्रकार कैसे करें। उदाहरण के लिए, मैं जानवरों की एक सूची को निम्न तरीके से क्रमबद्ध करना चाहूंगा: पहले वर्ण आरोही द्वारा क्रमबद्ध करें, फिर लंबाई अवरोही से, फिर अल्फान्यूमेरिक आरोही द्वारा।पाइथन 3
ठीक से सॉर्ट किए जाने पर "चींटी", "एंटेलोप", "ज़ेबरा", "एंटेटर" से बना एक सूची "एंटीटर", "एंटेलोप", "चींटी", "ज़ेबरा" बन जाएगी।
मैंने दस्तावेज़ों पर थोड़ा सा पढ़ा है लेकिन सॉर्ट विधि के लिए "कुंजी" तर्क नहीं मिलता है। कोई उदाहरण? पीएस: यह कॉलेज असाइनमेंट प्रश्न नहीं है। मैं बस थोड़ा सा अजगर के साथ खेलने के लिए देख रहा हूँ।
मैं एक लंबे, लंबे समय पहले जावा सीखा है और तरह कस्टम तरह कुछ को लागू किया है हो सकता है निम्नलिखित:
import java.util.*;
public class sortDemo implements Comparator<String> {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<String>();
animals.add("ant");
animals.add("antelope");
animals.add("zebra");
animals.add("anteater");
for (String a:animals){
System.out.println(a);
}
System.out.println();
// want output to be anteater, antelope, ant, zebra following the sort
Collections.sort(animals, new sortDemo());
for (String a:animals){
System.out.println(a);
}
}
public int compare(String s1, String s2) {
if (s1.charAt(0) > s2.charAt(0)){
return 1;
} else if (s1.charAt(0) == s2.charAt(0)){
if(s1.length() < s2.length()) {
return 1;
} else if (s1.length() == s2.length()) {
return s1.compareTo(s2);
} else {
return -1;
}
} else {
return -1;
}
}
}
[डॉक्स] (https://docs.python.org/3/howto/sorting.html) बहुत सीधे आगे हैं। ऐसा लगता है कि आपकी तुलना जटिल है, जिसका अर्थ है कि 'cmp_to_key' वह हो सकता है जिसे आप ढूंढ रहे हैं (दस्तावेज़ खोजें)। – alfasin