Python Tuple (med eksempler)

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.

Elementskæring i Python

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.

Interessante artikler...