Πώς να ταξινομήσετε λίστες σε Python

How Sort Lists Python



Αυτό το άρθρο θα καλύψει έναν οδηγό σχετικά με τις λίστες ταξινόμησης στην Python. Ένα αντικείμενο λίστας Python είναι μια συλλογή από ένα ή περισσότερα στοιχεία διαχωρισμένα με κόμμα. Είναι ένα επαναλαμβανόμενο αντικείμενο και τα στοιχεία του μπορούν να προσεγγιστούν επαναλαμβάνοντας τη λίστα χρησιμοποιώντας προτάσεις βρόχου και άλλες εκφράσεις. Μπορείτε να ταξινομήσετε μια λίστα Python χρησιμοποιώντας μεθόδους ταξινόμησης και ταξινόμησης, και οι δύο εξηγούνται στο άρθρο. Όλα τα δείγματα κώδικα σε αυτό το άρθρο δοκιμάζονται με Python 3.9.5 στο Ubuntu 21.04.

Μέθοδος ταξινόμησης

Η μέθοδος ταξινόμησης ταξινομεί μια λίστα επί τόπου. Με άλλα λόγια, θα τροποποιήσει το αντικείμενο λίστας που πρόκειται να ταξινομήσετε και θα αναδιατάξει το στοιχείο του. Εάν δεν απαιτείτε την αρχική λίστα και δεν σας πειράζει η λίστα να αλλάξει τη σειρά των στοιχείων της στη θέση της, αυτή είναι η πιο αποτελεσματική μέθοδος στην Python για να ταξινομήσετε μια λίστα. Εξετάστε αυτό το παράδειγμα:







ο= [2, 8, 6, 4]

ο.είδος()

Τυπώνω (ο)

Αφού εκτελέσετε το παραπάνω δείγμα κώδικα, θα πρέπει να λάβετε την ακόλουθη έξοδο:



[2, 4, 6, 8]

Η πρώτη πρόταση στο δείγμα κώδικα ορίζει μια λίστα. Στη συνέχεια, η μέθοδος ταξινόμησης καλείται στη λίστα. Όταν εκτυπώνετε τη λίστα, μπορείτε να δείτε ότι η σειρά της αρχικής λίστας έχει αλλάξει.



Από προεπιλογή, η Python ταξινομεί μια λίστα με αύξουσα σειρά. Εάν θέλετε να ταξινομήσετε μια λίστα με φθίνουσα σειρά, χρησιμοποιήστε αντίστροφη μέθοδο, όπως φαίνεται στο παρακάτω δείγμα κώδικα:





ο= [2, 8, 6, 4]

ο.είδος()

ο.ΑΝΤΙΣΤΡΟΦΗ()

Τυπώνω (ο)

Αφού εκτελέσετε το παραπάνω δείγμα κώδικα, θα πρέπει να λάβετε την ακόλουθη έξοδο:

[8, 6, 4, 2]

Η αντίστροφη μέθοδος αλλάζει επίσης μια λίστα Python στη θέση της χωρίς να δημιουργηθεί μια νέα λίστα.



Εάν η λίστα σας περιέχει στοιχεία συμβολοσειράς, η κλήση της μεθόδου ταξινόμησης θα την ταξινομήσει αλφαβητικά όπου τα σύμβολα και οι αριθμοί θα παραταχθούν πρώτα. Ρίξτε μια ματιά στο παρακάτω δείγμα κώδικα:

ο= ['μικρό', 'προς το', 'Με', '4', '#']

ο.είδος()
Τυπώνω (ο)

Αφού εκτελέσετε το παραπάνω δείγμα κώδικα, θα πρέπει να λάβετε την ακόλουθη έξοδο:

['#', '4', 'προς το', 'μικρό', 'Με']

Μπορείτε επίσης να χρησιμοποιήσετε την αντίστροφη μέθοδο σε μια λίστα που περιέχει στοιχεία συμβολοσειράς.

ο= ['μικρό', 'προς το', 'Με', '4', '#']

ο.είδος()

ο.ΑΝΤΙΣΤΡΟΦΗ()

Τυπώνω (ο)

Αφού εκτελέσετε το παραπάνω δείγμα κώδικα, θα πρέπει να λάβετε την ακόλουθη έξοδο:

['Με', 'μικρό', 'προς το', '4', '#']

Ταξινόμηση Μέθοδος

Η ταξινομημένη μέθοδος ταξινομεί επίσης μια λίστα Python, με τον ίδιο τρόπο όπως η μέθοδος ταξινόμησης. Ωστόσο, αντί να τροποποιήσει την αρχική λίστα, επιστρέφει μια νέα λίστα έτσι ώστε η αρχική σας λίστα να παραμένει ανέγγιχτη σε περίπτωση που θέλετε να την επαναχρησιμοποιήσετε. Εξετάστε τον παρακάτω κώδικα:

λίστα 1= ['μικρό', 'προς το', 'Με', '4', '#']

λίστα 2= ταξινομημένο(λίστα 1)

Τυπώνω (λίστα 1,λίστα 2)

Αφού εκτελέσετε το παραπάνω δείγμα κώδικα, θα πρέπει να λάβετε την ακόλουθη έξοδο:

['μικρό', 'προς το', 'Με', '4', '#'] ['#', '4', 'προς το', 'μικρό', 'Με']

Μπορείτε να δείτε στην έξοδο ότι η λίστα 1 είναι άθικτη και η λίστα 2 έχει πλέον ταξινομημένα στοιχεία. Μπορείτε επίσης να χρησιμοποιήσετε την αντίστροφη μέθοδο στη λίστα 2 για να αλλάξετε τη μεθοδολογία παραγγελίας.

Αντίστροφο επιχείρημα

Μπορείτε να χρησιμοποιήσετε το αντίστροφο όρισμα ως εναλλακτική λύση αντίστροφης συνάρτησης τόσο στις μεθόδους ταξινόμησης όσο και στις ταξινομήσεις για να λάβετε μια ταξινομημένη λίστα με φθίνουσα σειρά. Απλώς δώστε μια πραγματική τιμή για να αλλάξετε τη σειρά ταξινόμησης:

λίστα 1= ['μικρό', 'προς το', 'Με', '4', '#']

λίστα 2= ταξινομημένο(λίστα 1,ΑΝΤΙΣΤΡΟΦΗ=Αληθής)

Τυπώνω (λίστα 1,λίστα 2)

Αφού εκτελέσετε το παραπάνω δείγμα κώδικα, θα πρέπει να λάβετε την ακόλουθη έξοδο:

['μικρό', 'προς το', 'Με', '4', '#'] ['Με', 'μικρό', 'προς το', '4', '#']

Χρησιμοποιώντας τη Λειτουργία κλειδιού για να καθορίσετε τη δική σας λογική για την ταξινόμηση στοιχείων μιας λίστας

Και στις δύο μεθόδους ταξινόμησης και ταξινόμησης, μπορείτε να καθορίσετε ένα πρόσθετο όρισμα κλειδιού που παίρνει μια τιμή που καλείται ως τιμή. Αυτό το βασικό όρισμα μπορεί να εκχωρήσει μια υπάρχουσα συνάρτηση από ενσωματωμένες μονάδες Python ή μπορείτε να παρέχετε τη δική σας συνάρτηση με προσαρμοσμένη λογική. Ρίξτε μια ματιά στο παρακάτω δείγμα κώδικα:

λίστα 1= ['abcde', 'xyz', 'ijkl']

λίστα 2= ταξινομημένο(λίστα 1,κλειδί=λεν)

Τυπώνω (λίστα 1,λίστα 2)

λίστα 1.είδος(κλειδί=λεν)

Τυπώνω (λίστα 1)

Αφού εκτελέσετε το παραπάνω δείγμα κώδικα, θα πρέπει να λάβετε την ακόλουθη έξοδο:

['abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']

['xyz', 'ijkl', 'abcde']

Το δείγμα κώδικα απεικονίζει τη χρήση του βασικού ορίσματος τόσο στις μεθόδους ταξινόμησης όσο και στις ταξινομήσεις. Η συνάρτηση που παρέχεται σε αυτό ονομάζεται len που καθορίζει το μήκος ενός αντικειμένου συμβολοσειράς ή ενός επαναλήψιμου. Η συνάρτηση ή το καλούμενο θα πρέπει αρχικά να λαμβάνει μόνο ένα όρισμα. Το αντιστοιχίζετε στο βασικό επιχείρημα χωρίς να χρησιμοποιείτε σιδεράκια. Η καλούμενη συνάρτηση που παρέχεται στο βασικό όρισμα καλείται σε κάθε στοιχείο της λίστας. Οι τιμές που επιστρέφονται από αυτήν τη μέθοδο που καλείται χρησιμοποιούνται στη συνέχεια ως κλειδί για την ταξινόμηση της λίστας. Επομένως, η παροχή της συνάρτησης len στο βασικό όρισμα ταξινομεί στοιχεία μιας λίστας με τη σειρά του μήκους τους, δηλαδή από το συντομότερο στο μεγαλύτερο. Όπως προαναφέρθηκε, μπορείτε πάντα να χρησιμοποιήσετε την αντίστροφη μέθοδο για να αντιστρέψετε τη μεθοδολογία ταξινόμησης.

Μπορείτε επίσης να χρησιμοποιήσετε τη δική σας προσαρμοσμένη συνάρτηση ή συναρτήσεις lambda μιας γραμμής που επιστρέφουν την τιμή μιας μόνο έκφρασης. Ρίξτε μια ματιά στο παρακάτω δείγμα κώδικα, όπου μια λίστα έχει πλειάδες τρέχουσας απογραφής κιβωτίων φρούτων:

λίστα 1= [('μάνγκο', 99), ('πορτοκάλι', 51), ('μπανάνα', 76)]

λίστα 1.είδος(κλειδί=λάμδααπογραφή: απογραφή[1])

Τυπώνω (λίστα 1)

Αφού εκτελέσετε το παραπάνω δείγμα κώδικα, θα πρέπει να λάβετε την ακόλουθη έξοδο:

[('πορτοκάλι', 51), ('μπανάνα', 76), ('μάνγκο', 99)]

Η συνάρτηση λάμδα παρέχεται με ένα απόθεμα ορίσματος, το οποίο είναι κάθε στοιχείο της λίστας σε πλειάδα. Στη συνέχεια επιστρέφει το δεύτερο στοιχείο κάθε πλειάδας ως κλειδί (στο ευρετήριο 1). Στη συνέχεια, η συνάρτηση ταξινόμησης ταξινομεί όλες τις πλειάδες με το δεύτερο στοιχείο της σε αύξουσα σειρά. Μπορείτε επίσης να χρησιμοποιήσετε την αντίστροφη συνάρτηση ή το αντίστροφο όρισμα στο τελικό αποτέλεσμα για να αντιστρέψετε τη σειρά ταξινόμησης.

συμπέρασμα

Αυτοί είναι μερικοί τρόποι με τους οποίους μπορείτε να ταξινομήσετε τα περιεχόμενα μιας επαναλαμβανόμενης λίστας στην Python. Το βασικό επιχείρημα σάς επιτρέπει να γράψετε τη δική σας προσαρμοσμένη λογική ταξινόμησης, κατάλληλη για εφαρμογές που μπορεί να έχουν διαφορετικές ανάγκες από τις ενσωματωμένες μεθόδους ταξινόμησης.