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 …

  • Django - Wie man Tupel Auspacken in einer Vorlage 'für' Schleife zu tun
  • Wie funktioniert das Swapping von Mitgliedern in den Python-Tupeln (a, b) = (b, a) intern?
  • Python-Terminologie: Sachen nach links von "= argv" in Lernen Python die Hard Way-Übung 13
  • Eine Python-Funktion erhalten, um je nach Anzahl der Argumente einen Skalar oder eine Liste zurückzusetzen
  • Verständnis * x, = lst [duplizieren]
  • Python-Swapping-Listen
  • 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.