Ich habe Probleme zu verstehen, was der Unterschied in dem Code ist, den ich hier modifiziere. Der erste Abschnitt ist direkt von python documentation.Konvertieren Sie diese verschachtelte Ein-Zeilen-Schleife in mehrere Zeilen in Python
def product(*args, **kwds):
pools = map(tuple, args) * kwds.get('repeat', 1)
result = [[]]
for pool in pools:
result = [x+[y] for x in result for y in pool]
for prod in result:
yield tuple(prod)
ich ein sehr ähnliches Stück Code machen wollte, haben aber Bedingungen, wenn wir das Produkt für bestimmte Elemente in den Argumenten tatsächlich nehmen, so wollte ich die Linie konvertieren result = [x+[y] for x in result for y in pool]
in mehrere Zeilen, dann könnte ich meine if-Anweisungen und solche verwenden. Hier ist, was ich tat, aber wenn ich es laufen, so scheint es, in einer unendlichen Schleife stecken zu bleiben, oder etwas ...
def Myproduct(*args, **kwds):
pools = map(tuple, args) * kwds.get('repeat', 1)
result = [[]]
for pool in pools:
for x in result:
for y in pool:
result.append(x+[y])
for prod in result:
yield tuple(prod)
Ich mag würde, um tatsächlich den Unterschied verstehen hier. Ich habe gelesen und denke, ich bekomme this post, aber ich sehe nicht, wie man in diesem Fall richtig konvertieren, oder warum es nicht die gleiche Konvertierung mindestens ist. Vielen Dank im Voraus.
Vielen Dank! Ich wünschte, ich könnte beide Antworten akzeptieren. Sehr hilfreich. –