I denne artikkelen lærer du alt om Python-tupler. Mer spesifikt, hva er tupler, hvordan du lager dem, når du skal bruke dem og forskjellige metoder du bør være kjent med.
Video: Pythonlister og tupler
En tuple i Python ligner på en liste. Forskjellen mellom de to er at vi ikke kan endre elementene i en tuple når den er tildelt, mens vi kan endre elementene i en liste.
Opprette en Tuple
En tuple opprettes ved å plassere alle elementene (elementene) i parentes ()
, atskilt med komma. Parentesene er valgfrie, men det er en god praksis å bruke dem.
En tuple kan ha et hvilket som helst antall elementer, og de kan være av forskjellige typer (heltall, flyte, liste, streng osv.).
# 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)
Produksjon
() (1, 2, 3) (1, 'Hei', 3.4) ('mus', (8, 4, 6), (1, 2, 3))
En tuple kan også opprettes uten å bruke parentes. Dette er kjent som tupelpakning.
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
Produksjon
(3, 4.6, 'hund') 3 4.6 hund
Å lage en tuple med ett element er litt vanskelig.
Å ha ett element i parentes er ikke nok. Vi trenger et etterfølgende komma for å indikere at det faktisk er en tupel.
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)) #
Produksjon
Få tilgang til Tuple Elements
Det er forskjellige måter vi kan få tilgang til elementene i en tupel.
1. Indeksering
Vi kan bruke indeksoperatøren ()
til å få tilgang til et element i en tuple, der indeksen starter fra 0.
Så, en tuple med 6 elementer vil ha indekser fra 0 til 5. Å prøve å få tilgang til en indeks utenfor tupleindeksområdet (6,7,… i dette eksemplet) vil heve en IndexError
.
Indeksen må være et helt tall, så vi kan ikke bruke float eller andre typer. Dette vil resultere i TypeError
.
På samme måte får du tilgang til nestede tupler ved hjelp av nestet indeksering, som vist i eksemplet nedenfor.
# 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
Produksjon
pkt 4
2. Negativ indeksering
Python tillater negativ indeksering for sekvensene.
Indeksen på -1 refererer til den siste varen, -2 til den nest siste varen og så videre.
# 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))
Produksjon
tp
3. Skjæring
Vi kan få tilgang til en rekke ting i en tuple ved å bruke skiveroperatøren kolon :
.
# 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(:))
Produksjon
('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r ',' a ',' m ',' i ',' z ')
Oppskjæring kan best visualiseres ved å betrakte indeksen som mellom elementene som vist nedenfor. Så hvis vi ønsker å få tilgang til et område, trenger vi indeksen som vil skjære delen fra tupelen.

Endre en Tuple
I motsetning til lister er tupler uforanderlige.
Dette betyr at elementene i en tuple ikke kan endres når de er tildelt. Men hvis elementet i seg selv er en foranderlig datatype som en liste, kan de nestede elementene endres.
Vi kan også tildele en tuple til forskjellige verdier (omfordeling).
# 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)
Produksjon
(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:
- Vi bruker vanligvis tupler for heterogene (forskjellige) datatyper og lister for homogene (lignende) datatyper.
- Siden tuplene er uforanderlige, er det raskere å tappe gjennom en tupel enn med listen. Så det er en liten ytelsesforbedring.
- Tuples som inneholder uforanderlige elementer kan brukes som en nøkkel for en ordbok. Med lister er dette ikke mulig.
- Hvis du har data som ikke endres, vil implementering av dem som tuple garantere at de forblir skrivebeskyttet.