Η συνάρτηση zip () παίρνει iterables (μπορεί να είναι μηδέν ή περισσότερα), τα συγκεντρώνει σε μια πλειάδα και την επιστρέφει.
Η σύνταξη της zip()
συνάρτησης είναι:
φερμουάρ (* iterables)
zip () Παράμετροι
Παράμετρος | Περιγραφή |
---|---|
iterables | μπορεί να είναι ενσωματωμένα iterables (όπως: list, string, dict), ή καθορισμένα από τον χρήστη iterables |
Συνιστώμενη ανάγνωση: Python Iterators, __iter__ και __next__
Τιμή επιστροφής από zip ()
Η zip()
συνάρτηση επιστρέφει έναν επαναληπτικό των πλειάδων με βάση τα επαναλαμβανόμενα αντικείμενα.
- Εάν δεν περάσουμε καμία παράμετρο,
zip()
επιστρέφει έναν κενό επαναληπτικό - Εάν περάσει ένα μόνο επαναλαμβανόμενο,
zip()
επιστρέφει έναν επαναληπτικό πλειάδων με κάθε πλειάδα να έχει μόνο ένα στοιχείο. - Εάν περάσουν πολλά iterables,
zip()
επιστρέφει έναν επαναληπτικό tuples με κάθε πλειάδα να έχει στοιχεία από όλα τα iterables.
Ας υποθέσουμε ότι μεταβιβάζονται δύο επαναλήψειςzip()
. ένα επαναλαμβανόμενο που περιέχει τρία και άλλα που περιέχουν πέντε στοιχεία. Στη συνέχεια, ο επαναλαμβανόμενος επαναληπτής θα περιέχει τρεις πλειάδες. Είναι επειδή ο επαναληπτής σταματά όταν εξαντληθεί το μικρότερο επαναλαμβανόμενο.
Παράδειγμα 1: Φερμουάρ Python ()
number_list = (1, 2, 3) str_list = ('one', 'two', 'three') # No iterables are passed result = zip() # Converting iterator to list result_list = list(result) print(result_list) # Two iterables are passed result = zip(number_list, str_list) # Converting iterator to set result_set = set(result) print(result_set)
Παραγωγή
() ((2, «δύο»), (3, «τρία»), (1, «ένα»))
Παράδειγμα 2: Διαφορετικός αριθμός επαναλαμβανόμενων στοιχείων
numbersList = (1, 2, 3) str_list = ('one', 'two') numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Notice, the size of numbersList and numbers_tuple is different result = zip(numbersList, numbers_tuple) # Converting to set result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Converting to set result_set = set(result) print(result_set)
Παραγωγή
((2, "TWO"), (3, "THREE"), (1, "ONE")) ((2, "two", "TWO"), (1, "one", "ONE"))
Ο * χειριστής μπορεί να χρησιμοποιηθεί σε συνδυασμό με zip()
την αποσυμπίεση της λίστας.
φερμουάρ (* zippedList)
Παράδειγμα 3: Αποσυμπίεση της τιμής με χρήση zip ()
coordinate = ('x', 'y', 'z') value = (3, 4, 5) result = zip(coordinate, value) result_list = list(result) print(result_list) c, v = zip(*result_list) print('c =', c) print('v =', v)
Παραγωγή
(('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5)