ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Σύνολα
Σύνολα στα Μαθηματικά Στα μαθηματικά, ένα σύνολο τιμών ή στοιχείων είναι διακριτό και τα στοιχεία δεν έχουν κάποια συγκεκριμένη σειρά Αντίθετα, σε μια ακολουθία στοιχείων η σειρά έχει σημασία και ένα στοιχείο μπορεί να εμφανίζεται πολλές φορές Διακριτό: Α={1,2,3}, Β={1,2,2,3} Η σειρά δεν έχει σημασία: Α={1,2,3}={2,1,3}
Σύνολα στην Python Στην Python, τα σύνολα, μοιάζουν με τα λεξικά, αλλά δεν έχουν ζευγάρια (κλειδί,τιμή) είναι σαν λεξικά που έχουν μόνο κλειδιά Ορίζονται με χρήση {}, όπως και τα λεξικά Υποστηρίζονται από βασικές συναρτήσεις και τελεστές ακολουθιών >>> A = {1,2,3} >>> len(A) 3 >>> 2 in A True
Βασικές λειτουργίες Ένωση, τομή, διαφορά συνόλων όπως στα μαθηματικά >>> A = {1,2,3} >>> B = {3,4,5} >>> A | B {1, 2, 3, 4, 5} >>> A & B {3} >>> A - B {1, 2} >>> A ^ B {1, 2, 4, 5} τελεστής ένωσης τελεστής τομής τελεστής διαφοράς συμμετρική διαφορά
Τελεστές συνόλων Ισότητα, ανισότητα, (γνήσιο) υποσύνολο >>> A={1,2,3} >>> B={3,4,5} >>> C={2,3} >>> A == B False >>> A != B True >>> C <= A >>> C < A >>> C <= B υποσύνολο γνήσιο υποσύνολο
Μέθοδοι συνόλων Πρόσθεση, αφαίρεση στοιχείων, καθαρισμός >>> x = {'a','b','c'} >>> x.add('d') >>> x {'b', 'a', 'd', 'c'} >>> x.add('b') {'b', 'a', 'd', 'c’} >>> x.remove('c') {'b', 'a', 'd'} >>> x.clear() προσθέτει το ‘d’ προσθέτει το ‘b’ Το ‘b’ υπάρχει ήδη! αφαιρεί το ‘c’ καθαρίζει το σύνολο
Άσκηση Φτιάξτε μια συνάρτηση union(lst) η οποία παίρνει σαν όρισμα μια λίστα lst από σύνολα και επιστρέφει την ένωση όλων των συνόλων def union(lst): u = set() for s in lst: u = u | s return u αρχικοποιεί ένα άδειο σύνολο
Άσκηση Φτιάξτε μια συνάρτηση elim(lst) η οποία παίρνει σαν όρισμα μια λίστα lst από αριθμούς και επιστρέφει μια λίστα με τα ίδια στοιχεία όπως η lst χωρίς όμως διπλά στοιχεία. Κάντε χρήση συνόλων. def elim(lst): return list(set(lst)) αρχικοποιεί ένα σύνολο εισάγοντας τα στοιχεία της λίστας που παίρνει σαν όρισμα