Μπορείτε να μετατρέψετε μια λίστα σε σύνολο στην Python.
Πίστωση εικόνας: Poike/iStock/GettyImages
Οι λίστες και τα σύνολα στην Python περιέχουν και τα δύο ομάδες στοιχείων, αλλά υπάρχουν σημαντικές διαφορές μεταξύ των δύο. Συγκεκριμένα, τα σύνολα είναι χρήσιμα για την εκτέλεση ενός ευρέος φάσματος λειτουργιών, όπως ενώσεις και διασταυρώσεις, ενώ οι λίστες έχουν λιγότερες μαθηματικές πράξεις αλλά είναι χρήσιμες για την αναζήτηση συγκεκριμένων αντικειμένων –ειδικά με διπλότυπα– και την οργάνωση δεδομένα. Για πολλούς λόγους, ίσως χρειαστεί να μετατρέψετε μια λίστα σε σύνολο στην Python και υπάρχει μια απλή συνάρτηση που μπορείτε να χρησιμοποιήσετε για να το κάνετε αυτό.
Επεξήγηση λιστών και συνόλων Python
Η πιο σημαντική διαφορά μεταξύ μιας λίστας και ενός συνόλου στην Python είναι ότι μια λίστα μπορεί να περιέχει διπλά στοιχεία, ενώ ένα σύνολο περιέχει μόνο μοναδικά στοιχεία. Για παράδειγμα, εάν έχετε μια λίστα με τις βαθμολογίες των τεστ που ορίζονται ως "scores=[14, 20, 13, 20, 15]", η λίστα σας λέει κάθε τιμή, αλλά αν τη μετατρέψετε σε σύνολο, αφαιρεί το αντίγραφο και αφήνει {14, 20, 13, 15}.
Το βίντεο της ημέρας
Μια άλλη διαφορά είναι ότι οι αγκύλες χρησιμοποιούνται για λίστες, ενώ οι σγουρές αγκύλες για σύνολα. Τα πράγματα περιπλέκονται λίγο από το γεγονός ότι ένα λεξικό Python χρησιμοποιεί επίσης σγουρές αγκύλες, αλλά εκεί κάθε στοιχείο αποτελείται από την ίδια την τιμή και ένα "κλειδί" που χωρίζεται με άνω και κάτω τελεία.
Είναι σημαντικό να θυμάστε ότι μπορείτε να χρησιμοποιήσετε συμβολοσειρές, ακέραιους αριθμούς, floats ή άλλα αντικείμενα ως μέρος ενός συνόλου ή μιας λίστας, και αυτά μπορούν επίσης να αναμειχθούν στο ίδιο σύνολο ή λίστα. Έτσι, όπως μπορείτε να έχετε ένα σύνολο αριθμών στην Python, μπορείτε επίσης να κατασκευάσετε ένα σύνολο σειρών Python.
Μετατροπή λίστας σε σύνολο
Η διαδικασία για τη μετατροπή μιας λίστας σε σύνολο στην Python είναι απλή. Αρχικά, ορίζετε τη λίστα με τρόπο που να έχει νόημα για τις πληροφορίες που περιέχονται σε αυτήν. Για παράδειγμα, ας πούμε ότι θέλετε να ορίσετε μια λίστα ονομάτων, μπορείτε να γράψετε names=['Lee', 'Mike', 'Jamie', 'Mike', 'Sarah'] σημειώνοντας τις αγκύλες, τα εισαγωγικά γύρω από τις συμβολοσειρές (τα ονόματα) και τα κόμματα που χωρίζουν κάθε καταχώρηση.
Για να μετατρέψετε αυτήν τη λίστα σε σύνολο, χρησιμοποιείτε την εντολή σειρά(), όπου βάζετε το όνομα της λίστας που θέλετε να μετατρέψετε ανάμεσα στις παρενθέσεις. Έτσι, σε αυτή την περίπτωση, μπορείτε να γράψετε σύνολο (ονόματα) για να μετατρέψετε τα ονόματα στη λίστα σε ένα σύνολο και μπορείτε να του αντιστοιχίσετε μια μεταβλητή όπως "μοναδικά ονόματα" και να εμφανίσετε το αποτέλεσμα χρησιμοποιώντας εκτύπωση (μοναδικά ονόματα), που είναι λειτουργικά ισοδύναμο με εκτύπωση (σετ (ονόματα)) αλλά πιο προσεγμένο. Επιβεβαιώνετε ότι αυτό έγινε σωστά σημειώνοντας ότι το αποτέλεσμα χρησιμοποιεί σγουρές αγκύλες και ότι το "Mike" περιλαμβάνεται μόνο μία φορά.
Ολόκληρος ο κώδικας μοιάζει με αυτό:
names=['Lee', 'Mike','Jamie','Mike','Sarah']
μοναδικά ονόματα = σύνολο (ονόματα)
print('Μοναδικά ονόματα: ', μοναδικά ονόματα)
Σε αυτήν την περίπτωση, το "Μοναδικά ονόματα:" έχει προστεθεί στην έξοδο για σκοπούς παρουσίασης.
Python: Ορισμός μετατροπής λίστας
Μπορείτε επίσης να εκτελέσετε την ίδια μετατροπή προς την αντίθετη κατεύθυνση και η διαδικασία είναι βασικά η ίδια, εκτός από το να χρησιμοποιείτε το λίστα() εντολή σε ένα σύνολο και όχι αντίστροφα. Αυτό σημαίνει ότι χρειάζεστε ένα σύνολο για να ξεκινήσετε, το οποίο μπορείτε να ορίσετε εύκολα επιλέγοντας μια μεταβλητή όπως "big_set" και στη συνέχεια προσθέτοντας τα περιεχόμενα, διαχωρισμένα με κόμματα και σε αγκύλες. Θα μπορούσες να γράψεις big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17} για να ορίσετε ένα σύνολο ακεραίων ή οποιωνδήποτε άλλων τιμών.
Για να το μετατρέψετε σε λίστα, ορίζετε μια μεταβλητή (π.χ. "big_list") και χρησιμοποιείτε το λίστα() εντολή, οπότε πληκτρολογείτε κάτι σαν big_list=list (big_set) και μετά εκτύπωση (big_list) για να εμφανίσετε το αποτέλεσμα. Άρα ο πλήρης κωδικός είναι:
big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17}
big_list=list (big_set)
εκτύπωση (big_list)
Αυτή η περίπτωση δεν δίνει όνομα στη λίστα, επομένως επιστρέφει μόνο τη λίστα. Λάβετε υπόψη ότι εάν μετατρέψετε μια λίστα σε σύνολο και στη συνέχεια επιστρέψετε ξανά, θα χάσετε τυχόν επαναλαμβανόμενες τιμές στην πρώτη μετατροπή και δεν επιστρέφουν.