Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-Tupel

Python-Tupel

In diesem Artikel erfahren Sie alles über Python-Tupel. Genauer gesagt, was sind Tupel, wie man sie erstellt, wann man sie verwendet und mit welchen Methoden Sie vertraut sein sollten.

Video:Python-Listen und Tupel

Ein Tupel in Python ähnelt einer Liste. Der Unterschied zwischen den beiden besteht darin, dass wir die Elemente eines Tupels nicht ändern können, sobald es zugewiesen wurde, während wir die Elemente einer Liste ändern können.


Erstellen eines Tupels

Ein Tupel wird erstellt, indem alle Elemente (Elemente) in Klammern gesetzt werden () , durch Kommata abgetrennt. Die Klammern sind optional, es empfiehlt sich jedoch, sie zu verwenden.

Ein Tupel kann eine beliebige Anzahl von Elementen haben und sie können von unterschiedlichem Typ sein (Ganzzahl, Gleitkommazahl, Liste, Zeichenfolge usw.).

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

Ausgabe

()
(1, 2, 3)
(1, 'Hello', 3.4)
('mouse', [8, 4, 6], (1, 2, 3))

Ein Tupel kann auch ohne Klammern erstellt werden. Dies wird als Tuple-Packing bezeichnet.

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

Ausgabe

(3, 4.6, 'dog')
3
4.6
dog

Das Erstellen eines Tupels mit einem Element ist etwas schwierig.

Es reicht nicht aus, ein Element in Klammern zu haben. Wir benötigen ein abschließendes Komma, um anzuzeigen, dass es sich tatsächlich um ein Tupel handelt.

my_tuple = ("hello")
print(type(my_tuple))  # <class 'str'>

# Creating a tuple having one element
my_tuple = ("hello",)
print(type(my_tuple))  # <class 'tuple'>

# Parentheses is optional
my_tuple = "hello",
print(type(my_tuple))  # <class 'tuple'>

Ausgabe

<class 'str'>
<class 'tuple'>
<class 'tuple'>

Zugriff auf Tuple-Elemente

Es gibt verschiedene Möglichkeiten, wie wir auf die Elemente eines Tupels zugreifen können.

1. Indizierung

Wir können den Indexoperator [] verwenden um auf ein Element in einem Tupel zuzugreifen, wobei der Index bei 0 beginnt.

Ein Tupel mit 6 Elementen hat also Indizes von 0 bis 5. Der Versuch, auf einen Index außerhalb des Indexbereichs des Tupels zuzugreifen (in diesem Beispiel 6,7, ...), führt zu einem IndexError .

Der Index muss eine Ganzzahl sein, daher können wir Float oder andere Typen nicht verwenden. Dies ergibt TypeError .

Ebenso wird auf verschachtelte Tupel zugegriffen, indem verschachtelte Indexierung verwendet wird, wie im Beispiel unten gezeigt.

# 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

Ausgabe

p
t
s
4

2. Negative Indizierung

Python erlaubt negative Indizierung für seine Sequenzen.

Der Index von -1 bezieht sich auf das letzte Element, -2 auf das vorletzte Element und so weiter.

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

Ausgabe

t
p

3. Schneiden

Wir können auf eine Reihe von Elementen in einem Tupel zugreifen, indem wir den Slicing-Operator Doppelpunkt : verwenden .

# 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[:])

Ausgabe

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

Das Slicing kann am besten visualisiert werden, indem der Index wie unten gezeigt zwischen den Elementen liegt. Wenn wir also auf einen Bereich zugreifen wollen, brauchen wir den Index, der den Teil aus dem Tupel herausschneidet.


Ändern eines Tupels

Im Gegensatz zu Listen sind Tupel unveränderlich.

Das bedeutet, dass einmal zugewiesene Elemente eines Tupels nicht mehr verändert werden können. Aber wenn das Element selbst ein veränderlicher Datentyp wie eine Liste ist, können seine verschachtelten Elemente geändert werden.

Wir können einem Tupel auch verschiedene Werte zuweisen (Neuzuweisung).

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

Ausgabe

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

Wir können + verwenden Operator, um zwei Tupel zu kombinieren. Dies wird als Verkettung bezeichnet .

Wir können auch wiederholen die Elemente in einem Tupel für eine bestimmte Anzahl von Malen mit dem * Betreiber.

Beide + und * Operationen führen zu einem neuen Tupel.

# Concatenation
# Output: (1, 2, 3, 4, 5, 6)
print((1, 2, 3) + (4, 5, 6))

# Repeat
# Output: ('Repeat', 'Repeat', 'Repeat')
print(("Repeat",) * 3)

Ausgabe

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

Löschen eines Tupels

Wie oben besprochen, können wir die Elemente in einem Tupel nicht ändern. Das bedeutet, dass wir keine Elemente aus einem Tupel löschen oder entfernen können.

Das vollständige Löschen eines Tupels ist jedoch mit dem Schlüsselwort del.

möglich
# 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)

Ausgabe

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

Tupelmethoden

Methoden, die Elemente hinzufügen oder Elemente entfernen, sind mit Tuple nicht verfügbar. Nur die folgenden zwei Methoden sind verfügbar.

Einige Beispiele für Python-Tupelmethoden:

my_tuple = ('a', 'p', 'p', 'l', 'e',)

print(my_tuple.count('p'))  # Output: 2
print(my_tuple.index('l'))  # Output: 3

Ausgabe

2
3

Andere Tupeloperationen

1. Tuple-Mitgliedschaftstest

Wir können testen, ob ein Element in einem Tupel existiert oder nicht, indem wir das Schlüsselwort in verwenden .

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

Ausgabe

True
False
True

2. Durch ein Tupel iterieren

Wir können einen for verwenden Schleife, um jedes Element in einem Tupel zu durchlaufen.

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

Ausgabe

Hello John
Hello Kate

Vorteile von Tupel gegenüber Liste

Da Tupel Listen ziemlich ähnlich sind, werden beide in ähnlichen Situationen verwendet. Es gibt jedoch gewisse Vorteile bei der Implementierung eines Tupels gegenüber einer Liste. Nachfolgend sind einige der Hauptvorteile aufgeführt:

  • Im Allgemeinen verwenden wir Tupel für heterogene (unterschiedliche) Datentypen und Listen für homogene (ähnliche) Datentypen.
  • Da Tupel unveränderlich sind, ist das Iterieren durch ein Tupel schneller als mit einer Liste. Es gibt also einen leichten Leistungsschub.
  • Tupel, die unveränderliche Elemente enthalten, können als Schlüssel für ein Wörterbuch verwendet werden. Bei Listen ist dies nicht möglich.
  • Wenn Sie Daten haben, die sich nicht ändern, garantiert die Implementierung als Tupel, dass sie schreibgeschützt bleiben.

Python

  1. Python-Datentypen
  2. Python-Operatoren
  3. Python-pass-Anweisung
  4. Python-Funktionsargumente
  5. Python-Wörterbuch
  6. Python-Iteratoren
  7. Python-Schließungen
  8. Python-Datetime
  9. Python – Übersicht
  10. Python - Zahlen