Python Ταξινόμηση λίστας() με Παραδείγματα

Σε τι βρίσκεται η μέθοδος sort(). Python?

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

Σύνταξη της μεθόδου ταξινόμησης σε Python

Η συνάρτηση ταξινόμησης έχει την ακόλουθη σύνταξη όπως παρατίθεται παρακάτω: –

List.sort(key=…, reverse=…)

Η συνάρτηση ταξινόμησης έχει δύο προαιρετικές παραμέτρους, συγκεκριμένα όπως αναφέρονται παρακάτω: –

  • Κλειδί:- Χρησιμοποιείται για την ταξινόμηση μιας συνάρτησης με βάση ένα κριτήριο ταξινόμησης.
  • RevΑλλιώς: – παίρνει την τιμή είτε ως true είτε ως false. Εάν ισχύει, αυτή η προσαρμοσμένη συνάρτηση ταξινομεί τη λίστα με φθίνουσα σειρά.

Ταξινόμηση μιας λίστας με αύξουσα σειρά χρησιμοποιώντας τη μέθοδο Ταξινόμηση σε Python

In Python, η συνάρτηση ταξινόμησης, από προεπιλογή, ταξινομεί οποιαδήποτε λίστα με αύξουσα σειρά. Μια λίστα με αύξουσα σειρά έχει τη χαμηλότερη τιμή στην αριστερή πλευρά και η υψηλότερη τιμή εμφανίζεται στη δεξιά πλευρά.

Παράδειγμα:

Python code:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

Παραγωγή:

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

Επεξήγηση κώδικα:

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

Ταξινόμηση λίστας με φθίνουσα σειρά

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

Η αντίστροφη παράμετρος της συνάρτησης ταξινόμησης εκχωρείται ως αληθής για να ταξινομηθεί μια λίστα με φθίνουσα σειρά.

Ας δούμε το παρακάτω παράδειγμα: –

Python code:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

Παραγωγή:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

Σημείωση: Βεβαιωθείτε ότι η αντιστοίχιση της λέξης "True" στην αντίστροφη παράμετρο ξεκινά με κεφαλαία "T" για να αποφύγετε τυχόν σφάλματα χρόνου εκτέλεσης.

Ταξινόμηση μιας λίστας πλειάδων χρησιμοποιώντας τη μέθοδο Ταξινόμηση σε Python

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

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

Σύνταξη:

Lambda arguments: expression

Η παραπάνω σύνταξη είναι ισοδύναμη με τον παρακάτω κώδικα python:

def name (arguments):
return expression

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

Python code:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

Παραγωγή:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Επεξήγηση κώδικα:

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

Ας δούμε το παρακάτω παράδειγμα που χρησιμοποιεί την έκφραση λάμδα:

Python code:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

Παραγωγή:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Επεξήγηση:

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

Ταξινόμηση στοιχείων λίστας χρησιμοποιώντας το Len ως βασική παράμετρο

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

Ο ακόλουθος Python Ο κώδικας δείχνει πώς να χρησιμοποιήσετε τη συνάρτηση Len με τη συνάρτηση ταξινόμησης.

Python Κώδικας:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

Παραγωγή:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

Επεξήγηση κώδικα:

Ταξινόμηση στοιχείων λίστας χρησιμοποιώντας το Len

  • Το μήκος του στοιχείου γίνεται δείκτης για την παράμετρο κλειδί για να τακτοποιήσει τη λίστα σε αύξουσα σειρά.
  • Η συνάρτηση Len υπολογίζει το μήκος κάθε στοιχείου που υπάρχει στη λίστα βάσης.
  • Διατηρεί το πιο κοντό στοιχείο στην αριστερή πλευρά και το μεγαλύτερο στοιχείο στη δεξιά πλευρά.
  • Εδώ, οι λέξεις alto και java έχουν μήκη 4, τα οποία είναι ταξινομημένα πρώτα στη λίστα, ακολουθούμενα από το Guru99, το οποίο έχει μήκος 6.

Αυτό το παράδειγμα επεξηγεί την έννοια της αντίστροφης παραμέτρου στη συνάρτηση ταξινόμησης όπως φαίνεται παρακάτω: –

Python Κώδικας:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

Παραγωγή:

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

Ταξινόμηση στοιχείων λίστας χρησιμοποιώντας τη λειτουργία που καθορίζεται από το χρήστη ως βασική παράμετρο

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

Python Κώδικας:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

Παραγωγή:

The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

Επεξήγηση κώδικα:

  • Δημιουργείται μια συνάρτηση που ορίζεται από το χρήστη για να επιστρέψει το έτος
  • Η βασική παράμετρος λαμβάνει ως κριτήριο μια συνάρτηση που ορίζει ο χρήστης.
  • Η συνάρτηση ταξινόμησης θα τακτοποιήσει τη λίστα με αύξουσα σειρά με βάση την τιμή του στοιχείου "έτος".

Διαφορά μεταξύ της μεθόδου ταξινόμησης και της μεθόδου ταξινόμησης σε Python

Πριν συνοψιστούν οι διαφορές, ας κατανοήσουμε τη σύνταξη της μεθόδου Ταξινόμησης.

Python Σύνταξη:

sorted (list_name, reverse=…., key=..)

Επεξήγηση κώδικα:

  • Η συνάρτηση ταξινόμησης ταξινομεί τη λίστα σε αύξουσα ή φθίνουσα σειρά.
  • Η συνάρτηση δέχεται τρεις παραμέτρους, εκ των οποίων δύο παράμετροι είναι προαιρετικού τύπου και μία παράμετρος του απαιτούμενου τύπου.
  • Η παράμετρος list_name απαιτείται όταν χρησιμοποιείτε τη μέθοδο Ταξινόμησης.
  • Η μέθοδος Ταξινόμησης μπορεί να λάβει οποιονδήποτε τύπο επαναληπτικής λίστας ως είσοδο.
  • Οι βασικές παράμετροι και οι αντίστροφες παράμετροι είναι προαιρετικές παράμετροι σύμφωνα με τη μέθοδο ταξινόμησης σε Python.

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

Python code:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

Παραγωγή:

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

Επεξήγηση κώδικα:

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

Τα ακόλουθα είναι τα σημεία σχετικά με τις βασικές ομοιότητες και διαφορές: –

Ταξινομημένη λειτουργία Λειτουργία ταξινόμησης
Ταξινόμηση συνάρτησης σε Python είναι μια ενσωματωμένη συνάρτηση που λαμβάνει το list_name ως απαιτούμενη παράμετρο. Η συνάρτηση ταξινόμησης δεν λαμβάνει την αρχική λίστα ως παράμετρο.
Η μέθοδος ταξινόμησης επιστρέφει μια νέα λίστα Η λειτουργία ταξινόμησης δεν επιστρέφει νέα λίστα
Η ταξινομημένη συνάρτηση πρέπει να χρησιμοποιείται για επαναλαμβανόμενες λίστες Η συνάρτηση ταξινόμησης θα πρέπει να χρησιμοποιείται για μη επαναλαμβανόμενες λίστες.
Δεν τροποποιεί την αρχική λίστα και μας επιτρέπει να διατηρήσουμε τα αρχικά δεδομένα. Η συνάρτηση ταξινόμησης τροποποιεί την αρχική λειτουργία και συνεπώς καταλαμβάνει λιγότερο χώρο στη μνήμη

Πότε να χρησιμοποιήσετε τη μέθοδο ταξινόμησης ή τη μέθοδο ταξινόμησης;

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

Python code:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

Παραγωγή:

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Επεξήγηση κώδικα:

  • Η βασική λίστα ταξινομείται χρησιμοποιώντας και τη συνάρτηση ταξινόμησης και τη συνάρτηση ταξινόμησης.
  • Η βασική λίστα χάνεται όταν εφαρμόζεται η λειτουργία ταξινόμησης.
  • Η συνάρτηση ταξινόμησης δεν πρέπει να εφαρμόζεται στο αρχικό σύνολο δεδομένων. Θα πρέπει να χρησιμοποιείται όταν υπάρχει μια έκδοση αντιγραφής του αρχικού συνόλου δεδομένων.
  • Η συνάρτηση Ταξινόμηση διατηρεί την αρχική λίστα. Δεν το παρακάμπτει.
  • Αυτό προσφέρει καλύτερη ιχνηλασιμότητα και αποτελεσματική διαχείριση δεδομένων.

Συμπέρασμα

  • Η συνάρτηση ταξινόμησης βοηθά στην ταξινόμηση μιας λίστας αριθμών και συμβολοσειρών σε python.
  • Μπορεί επίσης να βοηθήσει στην ταξινόμηση των πλειάδων.
  • RevΤο erse και το key είναι προαιρετικές παράμετροι της συνάρτησης.
  • Εάν υπάρχει ανάγκη να υπάρχει ξεχωριστή λίστα και ταυτόχρονα να υπάρχει η αρχική λίστα, τότε η ταξινόμηση πρέπει να χρησιμοποιηθεί διαφορετικά, η συνάρτηση ταξινόμησης πρέπει να χρησιμοποιηθεί για να επιτευχθεί βελτιστοποιημένη χρήση μνήμης.