Φερμουάρ Python ()

Η συνάρτηση 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) 

ενδιαφέροντα άρθρα...