Wie kann ich ein Tupel explodieren, damit es als Parameterliste übergeben werden kann?

Angenommen, ich habe eine Methodendefinition wie folgt:

def myMethod(a, b, c, d, e) 

Dann habe ich eine Variable und ein Tupel wie folgt:

 myVariable = 1 myTuple = (2, 3, 4, 5) 

Gibt es einen Weg, den ich passieren kann, explodiere das Tupel, damit ich seine Mitglieder als Parameter übergeben kann? Etwas wie dieses (obwohl ich weiß, dass dies nicht funktioniert, da das gesamte Tupel als der zweite Parameter gilt):

 myMethod(myVariable, myTuple) 

Ich würde gerne vermeiden, jedes Tupel-Mitglied einzeln zu verweisen, wenn möglich …

  • Verständnis * x, = lst [duplizieren]
  • Ungültige Syntax-Python-Ausdrücke
  • Wie funktioniert das Swapping von Mitgliedern in den Python-Tupeln (a, b) = (b, a) intern?
  • So entpacken Sie Tupel der Länge n zu m <n Variablen
  • Python: wann kann ich einen generator auspacken?
  • Eine Python-Funktion erhalten, um je nach Anzahl der Argumente einen Skalar oder eine Liste zurückzusetzen
  • 2 Solutions collect form web for “Wie kann ich ein Tupel explodieren, damit es als Parameterliste übergeben werden kann?”

    Sie suchen nach dem Argument Auspacken Operator * :

     myMethod(myVariable, *myTuple) 

    Aus der Python-Dokumentation :

    Die umgekehrte Situation tritt auf, wenn die Argumente bereits in einer Liste oder einem Tupel liegen, aber für einen Funktionsaufruf, der separate Positionsargumente erfordert, ausgepackt werden müssen. Beispielsweise erwartet die integrierte range () – Funktion separate Start- und Stop-Argumente. Wenn sie nicht separat verfügbar sind, schreiben Sie den Funktionsaufruf mit dem * -operator, um die Argumente aus einer Liste oder einem Tupel auszupacken:

     >>> range(3, 6) # normal call with separate arguments [3, 4, 5] >>> args = [3, 6] >>> range(*args) # call with arguments unpacked from a list [3, 4, 5] 

    In der gleichen Weise können Wörterbücher Keyword-Argumente mit dem **-Operator liefern:

     >>> def parrot(voltage, state='a stiff', action='voom'): ... print "-- This parrot wouldn't", action, ... print "if you put", voltage, "volts through it.", ... print "E's", state, "!" ... >>> d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"} >>> parrot(**d) -- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised ! 
    Python ist die beste Programmiersprache der Welt.