Ταυτόχρονη επανάληψη ακολουθιών στην Python
Για να επαναλάβετε πολλές ακολουθίες ταυτόχρονα,
μπορείτε να χρησιμοποιήσετε τη συνάρτηση
zip. Σε αυτήν την περίπτωση, όλα τα στοιχεία
των ακολουθιών θα εμφανίζονται
με τη μορφή πλειάδων, που αποτελούνται από στοιχεία με
τον ίδιο δείκτη.
Παράδειγμα
Ας υποθέσουμε ότι έχουμε δύο λίστες:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Ας εμφανίσουμε τα στοιχεία τους ανά ζεύγη:
for el in zip(lst1, lst2):
print(el)
Αποτέλεσμα του εκτελεσμένου κώδικα:
('a', 1)
('b', 2)
('c', 3)
Παράδειγμα
Μπορείτε να επαναλάβετε και ακολουθίες
διαφορετικών τύπων. Ας περάσουμε μέσα από έναν βρόχο
και τη συνάρτηση zip ένα σύνολο και μια πλειάδα:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Αποτέλεσμα του εκτελεσμένου κώδικα:
('a', 1)
('b', 2)
('c', 3)
Παράδειγμα
Εάν το μήκος μιας ακολουθίας είναι μεγαλύτερο από τη δεύτερη, τότε θα επαναλαμβάνονται μέχρι τα στοιχεία της μικρότερης:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Αποτέλεσμα του εκτελεσμένου κώδικα:
('a', 1)
('b', 2)
('c', 3)
('d', 4)
Παράδειγμα
Χρησιμοποιώντας τη συνάρτηση zip μπορείτε να επαναλάβετε
και τρεις ακολουθίες. Για να το κάνετε αυτό, στην
παράμετρο της συνάρτησης τις αναφέρουμε όλες χωρισμένες με
κόμμα:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Αποτέλεσμα του εκτελεσμένου κώδικα:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Πρακτικές ασκήσεις
Δίνονται δύο λίστες:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Εμφανίστε τα στοιχεία τους ανά ζεύγη σε μορφή πλειάδας.
Δίνονται δύο λίστες:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Αποκτήστε από αυτές την ακόλουθη λίστα:
['a', '1', 'b', '2', 'c', '3']
Δίνονται τρεις λίστες:
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
Προσθέστε τα αντίστοιχα στοιχεία αυτών των λιστών και γράψτε το αποτέλεσμα σε μια νέα λίστα. Η άθροιση θα γίνει σύμφωνα με την ακόλουθη αρχή:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]