Λίστες
Εργαστήριο (χειμερινό εξάμηνο 2017)
Ασκήσεις κατανόησης
Άσκηση. (Κατασκευή λίστας) Γράψτε ένα πρόγραμμα το οποίο κατασκευάζει μία λίστα με στοιχεία $0,1,2,\ldots,99$.
L = []
for i in range(100):
L = L + [i]
επίσης
L = []
for i in range(100): L.append(i)
επίσης
L = [i for i in range(100)]
επίσης
L = list(range(100))
Άσκηση. (Εκτύπωση στοιχείου λίστας) Γράψτε ένα πρόγραμμα στο οποίο θα δίνεται ένας αριθμός 0 ≤ i ≤ 12 και θα τυπώνει τον αντίστοιχο μήνα.
months = ["January","February","March","April","May","June","July", \
"August","September","October","November","December"]
month = int(input("Give number for month: "))
if 1 <= month <= 12:
print("The {}th month is {}.".format(month,months[month-1]))
else:
print("There is no {}th month.".format(month))
Άλλες ασκήσεις
Σημείωση: Οι περισσότερες ασκήσεις απαιτούν ανακύκλωση.
Άσκηση. (α) Γράψτε μία συνάρτηση η οποία θα δέχεται δύο διανύσματα (των οποίων οι συνιστώσες θα δίνονται ως λίστες) και θα επιστρέφει το άθροισμά τους. (β) Γενικεύστε την προηγούμενη συνάρτηση ώστε να δίνει έναν γραμμικό συνδυασμό των διανυσμάτων.
Άσκηση. Κατασκευάστε μία λίστα η οποία θα περιέχει διαδοχικά και ισαπέχοντα σημεία $x_i,\, i=1,2,\ldots$ σε διάστημα $[a,b]$. Επίσης, δημιουργήστε μία λίστα η οποία θα έχει ως στοιχεία τις τιμές συνάρτησης $f(x_i)$. [Υπόδειξη: χρησιμοποιήστε $f(x)=x^3-16x$ στο διάστημα $[-5,5]$ και επιλέξτε ελεύθερα το διάστημα μεταξύ διαδοχικών θέσεων $x_i$. Μπορείτε να χρησιμοποίησετε υπολογιζόμενη λίστα.]
Άσκηση. Γράψτε ένα πρόγραμμα το οποίο κατασκευάζει μια λίστα με τους διαιρέτες ενός φυσικού αριθμού. [Κώδικας]
Άσκηση. Γράψτε ένα πρόγραμμα το οποίο ελέγχει αν δυο λίστες έχουν τουλάχιστον ένα κοινό στοιχείο. [Κώδικας]
Άσκηση. Γράψτε ένα πρόγραμμα το οποίο αποθηκεύει σε μια λίστα τις λέξεις που εισάγει ο χρήστης και στη συνέχεια εμφανίζει μόνο τις λέξεις με περισσότερα από 3 γράμματα. Η είσοδος των λέξων θα πρέπει να τερματίζει όταν ο χρήστης δώσει τη λέξη ’end’.
Άσκηση. Γράψτε ένα πρόγραμμα το οποίο αποθηκεύει στη λίστα L τις τιμές της συνάρτησης f στα σημεία ενός ομοιόμορφου διαμερισμού του διαστήματος [0, 1] με n εσωτερικά σημεία. [Κώδικας]
Άσκηση. Γράψτε μια συνάρτηση η οποία με είσοδο δύο λίστες τα στοιχεία των οποίων είναι σε αύξουσα σειρά επιστρέφει μια λίστα με όλα τα στοιχεία και από τις δύο λίστες, πάλι σε αύξουσα σειρά. [Κώδικας]
Άσκηση. Γράψτε μια συνάρτηση η οποία υπολογίζει τη συχνότητα εμφάνισης όλων των στοιχείων μιας λίστας.
Άσκηση. Γράψτε ένα πρόγραμμα το οποίο αφαιρεί από μια λίστα τις πολλαπλές εμφανίσεις των στοιχείων της. Για παράδειγμα, η λίστα [10, 12, 13, 13, 10, 9, 8, 7, 8, 10, 10, 8, 13] θα πρέπει να γίνει [10, 12, 13, 9, 8, 7].
Άσκηση. Μπορούμε να βρούμε το μικρότερο στοιχείο μιας λίστας χρησιμοποιώντας τη συνάρτηση min. Πως μπορούμε να βρούμε το δεύτερο μικρότερο στοιχείο μιας λίστας; Η άσκηση είναι δύσκολη – αν κάποιος ενδιαφέρεται για μια κομψή λύση.