Ich möchte einen Generator erstellen, der eine beliebige Anzahl von Schlüsselwortargumenten akzeptiert und das Produkt der Werte zurückgibt (geben Sie als Tupel wie unten gezeigt).Python: Erstellen unbekannter Anzahl von Variablen mit For-Schleife
Ich habe Probleme bei der Vermeidung der Hardcodierung der for-Schleife Variablen (hardcoded_a
, hardcoded_b
). In diesem Szenario, wenn ich mehr oder weniger als zwei Argumente verwende, gibt es eine ValueError
. Es ist mir egal, ob ich die 'OK'-Variablen fest codiere. Wie kann ich darüber gehen, egal wie viele Gegenstände ich an Kwargs gebe, kann ich immer noch das Produkt liefern?
Das ist, was ich bisher geschrieben haben:
from itertools import product
def gen(**kwargs):
options = {}
[options.update({k: v}) for k, v in kwargs.iteritems()]
for hardcoded_a, hardcoded_b in product(*(tuple(options.values()))):
yield hardcoded_a, hardcoded_b
for okay_var1, okay_var2 in gen(dollar=(2, 20), hungry=(True, False)):
print okay_var1, okay_var2
Was ist Ihr Ziel? multipliziere alle Werte von Kwargs? – Milor123
Was sollte es in Ihrem Fall drucken? – Hetzroni
@ Milor123 Ich möchte schließlich ein Wörterbuch der Kwargs-Schlüssel zu einem Wert ergeben, der sicherstellt, dass alle möglichen Werte abgedeckt werden – af3ld