Python Tuple (példákkal)

Ebben a cikkben mindent megtudhat a Python-sorrendről. Pontosabban: mik a sorrendek, hogyan kell létrehozni őket, mikor kell használni őket és a különféle módszereket, amelyeket ismernie kell.

Videó: Python-listák és -csomók

A Python egy duplája hasonló a listához. A különbség a kettő között az, hogy a kettő elemeit nem tudjuk megváltoztatni, miután hozzárendeltük, míg a lista elemeit megváltoztathatjuk.

Tuple létrehozása

A duplát úgy hozzák létre, hogy az összes elemet (elemet) ()vesszővel elválasztva zárójelek közé helyezik . A zárójelek nem kötelezőek, azonban jó gyakorlat ezeket használni.

Egy duplának tetszőleges számú eleme lehet, és különböző típusúak lehetnek (egész szám, úszó, lista, karakterlánc stb.).

 # 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)

Kimenet

 () (1, 2, 3) (1, „Hello”, 3.4) („egér”, (8, 4, 6), (1, 2, 3))

Zárójelek nélkül is létrehozható egy pár. Ezt kettős csomagolásnak nevezik.

 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

Kimenet

 (3, 4.6, 'kutya') 3 4.6 kutya

Egy elem létrehozása egy kicsit nehézkes.

Egy elem zárójelben nem elég. Szükségünk lesz egy záró vesszőre annak jelzésére, hogy valójában kettő.

 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)) # 

Kimenet

 

Hozzáférés a Tuple Elements-hez

Különböző módon érhetjük el a kettő elemeit.

1. Indexelés

Az index operátort ()használhatjuk egy elem eléréséhez egy duplában, ahol az index 0-tól kezdődik.

Tehát egy 6 elemű duplának indexei 0 és 5 között lesznek. Ha megpróbálunk elérni egy indexet a duplán index tartományon kívül (ebben a példában 6,7, …), akkor egy IndexError.

Az indexnek egész számnak kell lennie, ezért nem használhatunk float vagy más típusokat. Ez azt eredményezi TypeError.

Hasonlóképpen, a beágyazott tömbök beágyazott indexeléssel érhetők el, amint az az alábbi példában látható.

 # 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

Kimenet

 4. pont

2. Negatív indexelés

A Python lehetővé teszi negatív indexelését szekvenciáihoz.

A -1 index az utolsó elemre, a -2 a második utolsó elemre és így tovább.

 # 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))

Kimenet

 tp

3. Szeletelés

A szeletelő operátor kettősponttal elérhetünk egy tételben egy sor elemet :.

 # 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(:))

Kimenet

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

A szeletelést úgy lehet legjobban megjeleníteni, ha az indexet az alábbiak szerint az elemek között tartjuk. Tehát, ha egy tartományhoz szeretnénk hozzáférni, szükségünk van arra az indexre, amely szétvágja a részt a duplából.

Elem szeletelés a Pythonban

Tuple cseréje

A listákkal ellentétben a sorok változhatatlanok.

Ez azt jelenti, hogy a kettő elemeit nem lehet megváltoztatni, miután hozzárendelték őket. De ha az elem maga egy módosítható adattípus, például a lista, akkor beágyazott elemei megváltoztathatók.

Különböző értékekhez is rendelhetünk duplát (újrabeosztás).

 # 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)

Kimenet

 (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:

  • A heterogén (különböző) adattípusokhoz általában sorrendeket, a homogén (hasonló) adattípusokhoz pedig listákat használunk.
  • Mivel a sorok változhatatlanok, a duplán történő iteráció gyorsabb, mint a listával. Tehát van egy kis teljesítménynövekedés.
  • A változhatatlan elemeket tartalmazó tömbök kulcsként használhatók egy szótár számára. Listákkal ez nem lehetséges.
  • Ha olyan adatokkal rendelkezik, amelyek nem változnak, akkor kettőként történő végrehajtása garantálja az írásvédettséget.

érdekes cikkek...