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.
![](https://cdn.wiki-base.com/8606704/python_tuple_with_examples.jpg.webp)
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.