Ταξινόμηση μιας λίστας στην Python: η διαφορά μεταξύ ταξινομημένης και ταξινομημένης

Επιχείρηση

Υπάρχουν δύο τρόποι για να ταξινομήσετε μια λίστα σε αύξουσα ή φθίνουσα σειρά στην Python.

  • sort()
  • sorted()

Αν θέλετε να ταξινομήσετε ένα αλφαριθμητικό ή μια πλειάδα, χρησιμοποιήστε την sorted().

Οι ακόλουθες πληροφορίες παρέχονται εδώ.

  • Μια μέθοδος τύπου list που ταξινομεί την αρχική λίσταsort()
  • Δημιουργία νέας ταξινομημένης λίστας, ενσωματωμένη συνάρτηση: .sorted()
  • Πώς να ταξινομήσετε συμβολοσειρές και πλειάδες

Ταξινόμηση της αρχικής λίστας, μια μέθοδος τύπου list: sort()

Η sort() είναι μια μέθοδος τύπου λίστας.

Μια καταστροφική διαδικασία κατά την οποία η ίδια η αρχική λίστα ξαναγράφεται.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Σημειώστε ότι η sort() επιστρέφει None.

print(org_list.sort())
# None

Η προεπιλογή είναι αύξουσα σειρά. Αν θέλετε να ταξινομήσετε σε φθίνουσα σειρά, ορίστε το όρισμα reverse σε true.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

Δημιουργία μιας νέας ταξινομημένης λίστας, ενσωματωμένη συνάρτηση: sorted()

Η sorted() είναι μια ενσωματωμένη συνάρτηση.

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

org_list = [3, 1, 4, 5, 2]

new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]

Όπως και στην sort(), η προεπιλογή είναι αύξουσα σειρά. Αν θέλετε να ταξινομήσετε με φθίνουσα σειρά, ορίστε το όρισμα reverse σε true.

new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]

Πώς να ταξινομήσετε συμβολοσειρές και πλειάδες

Δεδομένου ότι οι συμβολοσειρές και οι πλειάδες είναι αμετάβλητες, δεν υπάρχει διαθέσιμη μέθοδος sort() για την επανεγγραφή του αρχικού αντικειμένου.

Από την άλλη πλευρά, το όρισμα της συνάρτησης sorted(), η οποία παράγει μια ταξινομημένη λίστα ως νέο αντικείμενο, μπορεί να είναι ένα αλφαριθμητικό ή μια πλειάδα καθώς και μια λίστα. Ωστόσο, δεδομένου ότι η sorted() επιστρέφει μια λίστα, πρέπει να μετατραπεί σε συμβολοσειρά ή πλειάδα.

Ταξινόμηση συμβολοσειρών

Όταν μια συμβολοσειρά καθορίζεται ως όρισμα της συνάρτησης sorted(), επιστρέφεται μια λίστα στην οποία κάθε χαρακτήρας της ταξινομημένης συμβολοσειράς αποθηκεύεται ως στοιχείο.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Για να συνδέσετε μια λίστα συμβολοσειρών σε μια ενιαία συμβολοσειρά, χρησιμοποιήστε τη μέθοδο join().

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Αν θέλετε να ταξινομήσετε με φθίνουσα σειρά, ορίστε το όρισμα reverse σε true.

new_str = ''.join(sorted(org_str))
print(new_str)
# abcde

new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba

Το μέγεθος μιας συμβολοσειράς καθορίζεται από το σημείο κώδικα Unicode (κωδικό χαρακτήρα) του χαρακτήρα.

Ταξινόμηση πλειάδων

Οι πλειάδες είναι ίδιες με τις συμβολοσειρές- ο προσδιορισμός μιας πλειάδας ως όρισμα της συνάρτησης sorted() επιστρέφει μια ταξινομημένη λίστα στοιχείων.

org_tuple = (3, 1, 4, 5, 2)

new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]

Για να μετατρέψετε μια λίστα σε πλειάδα, χρησιμοποιήστε την tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Αν θέλετε να ταξινομήσετε με φθίνουσα σειρά, ορίστε το όρισμα reverse σε true.

new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)

new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)
Copied title and URL