Python Tuple (με παραδείγματα)

Σε αυτό το άρθρο, θα μάθετε τα πάντα για τις πλειάδες της Python. Πιο συγκεκριμένα, τι είναι οι πλειάδες, πώς να τις δημιουργήσετε, πότε να τις χρησιμοποιήσετε και διάφορες μεθόδους που πρέπει να γνωρίζετε.

Βίντεο: Λίστες και Tuples Python

Μια πλειάδα στο Python είναι παρόμοια με μια λίστα. Η διαφορά μεταξύ των δύο είναι ότι δεν μπορούμε να αλλάξουμε τα στοιχεία μιας πλειάδας όταν έχει εκχωρηθεί, ενώ μπορούμε να αλλάξουμε τα στοιχεία μιας λίστας.

Δημιουργία Tuple

Δημιουργείται μια πλειάδα τοποθετώντας όλα τα στοιχεία (στοιχεία) μέσα σε παρενθέσεις (), διαχωρισμένα με κόμματα. Οι παρενθέσεις είναι προαιρετικές, ωστόσο, είναι καλή πρακτική να τις χρησιμοποιείτε.

Μια πλειάδα μπορεί να έχει οποιονδήποτε αριθμό αντικειμένων και μπορεί να είναι διαφορετικού τύπου (ακέραιος, float, list, string, κλπ.).

 # Different types of tuples # Empty tuple my_tuple = () print(my_tuple) # Tuple having integers my_tuple = (1, 2, 3) print(my_tuple) # tuple with mixed datatypes my_tuple = (1, "Hello", 3.4) print(my_tuple) # nested tuple my_tuple = ("mouse", (8, 4, 6), (1, 2, 3)) print(my_tuple)

Παραγωγή

 () (1, 2, 3) (1, «Γεια», 3.4) («ποντίκι», (8, 4, 6), (1, 2, 3))

Μια πλειάδα μπορεί επίσης να δημιουργηθεί χωρίς τη χρήση παρενθέσεων. Αυτό είναι γνωστό ως συσκευασία tuple.

 my_tuple = 3, 4.6, "dog" print(my_tuple) # tuple unpacking is also possible a, b, c = my_tuple print(a) # 3 print(b) # 4.6 print(c) # dog

Παραγωγή

 (3, 4.6, «σκύλος») 3 4.6 σκύλος

Η δημιουργία μιας πλειάδας με ένα στοιχείο είναι λίγο δύσκολη.

Δεν αρκεί να υπάρχει ένα στοιχείο εντός παρενθέσεων. Θα χρειαστούμε ένα τελικό κόμμα για να δείξουμε ότι είναι στην πραγματικότητα μια πλειάδα.

 my_tuple = ("hello") print(type(my_tuple)) # # Creating a tuple having one element my_tuple = ("hello",) print(type(my_tuple)) # # Parentheses is optional my_tuple = "hello", print(type(my_tuple)) # 

Παραγωγή

 

Πρόσβαση σε Tuple Elements

Υπάρχουν διάφοροι τρόποι με τους οποίους μπορούμε να έχουμε πρόσβαση στα στοιχεία μιας πλειάδας.

1. Ευρετηρίαση

Μπορούμε να χρησιμοποιήσουμε τον τελεστή ευρετηρίου ()για πρόσβαση σε ένα στοιχείο σε μια πλειάδα, όπου το ευρετήριο ξεκινά από το 0.

Έτσι, μια πλειάδα που έχει 6 στοιχεία θα έχουν δείκτες από 0 έως 5. Προσπαθώντας να έχουν πρόσβαση σε ένα εξωτερικό δείκτη του εύρους δείκτη πλειάδα (6,7, … σε αυτό το παράδειγμα) θα αυξήσει μια IndexError.

Ο δείκτης πρέπει να είναι ακέραιος, έτσι δεν μπορούμε να χρησιμοποιήσουμε float ή άλλους τύπους. Αυτό θα έχει ως αποτέλεσμα TypeError.

Παρομοίως, η πρόσβαση σε ένθετες πλειάδες χρησιμοποιεί ένθετη ευρετηρίαση, όπως φαίνεται στο παρακάτω παράδειγμα.

 # Accessing tuple elements using indexing my_tuple = ('p','e','r','m','i','t') print(my_tuple(0)) # 'p' print(my_tuple(5)) # 't' # IndexError: list index out of range # print(my_tuple(6)) # Index must be an integer # TypeError: list indices must be integers, not float # my_tuple(2.0) # nested tuple n_tuple = ("mouse", (8, 4, 6), (1, 2, 3)) # nested index print(n_tuple(0)(3)) # 's' print(n_tuple(1)(1)) # 4

Παραγωγή

 πόντοι 4

2. Αρνητική ευρετηρίαση

Η Python επιτρέπει αρνητική ευρετηρίαση για τις ακολουθίες της.

Ο δείκτης -1 αναφέρεται στο τελευταίο στοιχείο, -2 στο δεύτερο τελευταίο στοιχείο και ούτω καθεξής.

 # Negative indexing for accessing tuple elements my_tuple = ('p', 'e', 'r', 'm', 'i', 't') # Output: 't' print(my_tuple(-1)) # Output: 'p' print(my_tuple(-6))

Παραγωγή

 tp

3. Τεμαχισμός

Μπορούμε να έχουμε πρόσβαση σε μια γκάμα αντικειμένων σε μια πλειάδα χρησιμοποιώντας το κόλον χειριστή τεμαχισμού :.

 # Accessing tuple elements using slicing my_tuple = ('p','r','o','g','r','a','m','i','z') # elements 2nd to 4th # Output: ('r', 'o', 'g') print(my_tuple(1:4)) # elements beginning to 2nd # Output: ('p', 'r') print(my_tuple(:-7)) # elements 8th to end # Output: ('i', 'z') print(my_tuple(7:)) # elements beginning to end # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') print(my_tuple(:))

Παραγωγή

 ('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r ',' a ',' m ',' i ',' z ')

Ο τεμαχισμός μπορεί να απεικονιστεί καλύτερα λαμβάνοντας υπόψη ότι ο δείκτης βρίσκεται μεταξύ των στοιχείων όπως φαίνεται παρακάτω. Επομένως, εάν θέλουμε να αποκτήσουμε πρόσβαση σε μια περιοχή, χρειαζόμαστε το ευρετήριο που θα κόψει το τμήμα από την πλειάδα.

Τεμαχισμός στοιχείων στο Python

Αλλαγή ενός Tuple

Σε αντίθεση με τις λίστες, οι πλειάδες είναι αμετάβλητες.

Αυτό σημαίνει ότι τα στοιχεία μιας πλειάδας δεν μπορούν να αλλάξουν όταν έχουν αντιστοιχιστεί. Ωστόσο, εάν το στοιχείο είναι ο ίδιος ένας μεταβλητός τύπος δεδομένων όπως λίστα, τα ένθετα στοιχεία του μπορούν να αλλάξουν.

Μπορούμε επίσης να εκχωρήσουμε μια πλειάδα σε διαφορετικές τιμές (εκ νέου ανάθεση).

 # Changing tuple values my_tuple = (4, 2, 3, (6, 5)) # TypeError: 'tuple' object does not support item assignment # my_tuple(1) = 9 # However, item of mutable element can be changed my_tuple(3)(0) = 9 # Output: (4, 2, 3, (9, 5)) print(my_tuple) # Tuples can be reassigned my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') print(my_tuple)

Παραγωγή

 (4, 2, 3, (9, 5)) ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')

We can use + operator to combine two tuples. This is called concatenation.

We can also repeat the elements in a tuple for a given number of times using the * operator.

Both + and * operations result in a new tuple.

 # Concatenation # Output: (1, 2, 3, 4, 5, 6) print((1, 2, 3) + (4, 5, 6)) # Repeat # Output: ('Repeat', 'Repeat', 'Repeat') print(("Repeat",) * 3)

Output

 (1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')

Deleting a Tuple

As discussed above, we cannot change the elements in a tuple. It means that we cannot delete or remove items from a tuple.

Deleting a tuple entirely, however, is possible using the keyword del.

 # Deleting tuples my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') # can't delete items # TypeError: 'tuple' object doesn't support item deletion # del my_tuple(3) # Can delete an entire tuple del my_tuple # NameError: name 'my_tuple' is not defined print(my_tuple)

Output

 Traceback (most recent call last): File "", line 12, in NameError: name 'my_tuple' is not defined

Tuple Methods

Methods that add items or remove items are not available with tuple. Only the following two methods are available.

Some examples of Python tuple methods:

 my_tuple = ('a', 'p', 'p', 'l', 'e',) print(my_tuple.count('p')) # Output: 2 print(my_tuple.index('l')) # Output: 3

Output

 2 3

Other Tuple Operations

1. Tuple Membership Test

We can test if an item exists in a tuple or not, using the keyword in.

 # Membership test in tuple my_tuple = ('a', 'p', 'p', 'l', 'e',) # In operation print('a' in my_tuple) print('b' in my_tuple) # Not in operation print('g' not in my_tuple)

Output

 True False True

2. Iterating Through a Tuple

We can use a for loop to iterate through each item in a tuple.

 # Using a for loop to iterate through a tuple for name in ('John', 'Kate'): print("Hello", name)

Output

 Hello John Hello Kate

Advantages of Tuple over List

Since tuples are quite similar to lists, both of them are used in similar situations. However, there are certain advantages of implementing a tuple over a list. Below listed are some of the main advantages:

  • Χρησιμοποιούμε γενικά πλειάδες για ετερογενείς (διαφορετικούς) τύπους δεδομένων και λίστες για ομοιογενείς (παρόμοιους) τύπους δεδομένων.
  • Δεδομένου ότι οι πλειάδες είναι αμετάβλητες, η επανάληψη μέσω μιας πλειάδας είναι ταχύτερη από ό, τι με τη λίστα. Υπάρχει, λοιπόν, μια μικρή αύξηση απόδοσης.
  • Tuples που περιέχουν αμετάβλητα στοιχεία μπορούν να χρησιμοποιηθούν ως κλειδί για ένα λεξικό. Με λίστες, αυτό δεν είναι δυνατό.
  • Εάν έχετε δεδομένα που δεν αλλάζουν, η εφαρμογή του ως tuple θα εγγυηθεί ότι παραμένει προστατευμένο από την εγγραφή.

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