Einen Wert von einem Tupel erhalten

152

Gibt es eine Möglichkeit, einen Wert aus einem Tupel in Python mithilfe von Ausdrücken abzurufen?

def tup():
  return (3, "hello")

i = 5 + tup()  # I want to add just the three

Ich weiß, ich kann dies tun:

(j, _) = tup()
i = 5 + j

Aber das würde meiner Funktion ein paar Dutzend Zeilen hinzufügen und ihre Länge verdoppeln.

BCS
quelle
1
Das _ist auch nur eine Variable. Es wird nur oft verwendet, um ihm einen Wert zuzuweisen, der verworfen werden kann. Aber theoretisch können Sie den Wert von_
Info-Screen

Antworten:

202

Du kannst schreiben

i = 5 + tup()[0]

Tupel können wie Listen indiziert werden.

Der Hauptunterschied zwischen Tupeln und Listen besteht darin, dass Tupel unveränderlich sind. Sie können die Elemente eines Tupels nicht auf unterschiedliche Werte setzen oder Elemente wie in einer Liste hinzufügen oder entfernen. Davon abgesehen funktionieren sie in den meisten Situationen ziemlich gleich.

David Z.
quelle
54

Für alle, die in Zukunft nach einer Antwort suchen, möchte ich eine viel klarere Antwort auf die Frage geben.

# for making a tuple
my_tuple = (89, 32)
my_tuple_with_more_values = (1, 2, 3, 4, 5, 6)

# to concatenate tuples
another_tuple = my_tuple + my_tuple_with_more_values
print(another_tuple)
# (89, 32, 1, 2, 3, 4, 5, 6)

# getting a value from a tuple is similar to a list
first_val = my_tuple[0]
second_val = my_tuple[1]

# if you have a function called my_tuple_fun that returns a tuple,
# you might want to do this
my_tuple_fun()[0]
my_tuple_fun()[1]

# or this
v1, v2 = my_tuple_fun()

Ich hoffe, dies klärt die Dinge für diejenigen, die es brauchen, weiter auf.

AbdulMueed
quelle
1
Danke für das Update. Der Vollständigkeit halber möchten Sie möglicherweise die Verwendung des Unterstrichs als "Dummy" -Platzhalter beim Auspacken von Tupeln hinzufügen.
Emile