Also grundsätzlich möchte ich das Konzept der product() - Funktion in iwertools verstehen. Ich meine, was ist der Unterschied zwischen Rendite und Rendite? Und kann dieser Code sowieso verkürzt werden?Das Konzept hinter dem Produkt von itertool Funktion
def product1(*args, **kwds):
pools = map(tuple, args) * kwds.get('repeat', 1)
n = len(pools)
if n == 0:
yield()
return
if any(len(pool) == 0 for pool in pools):
return
indices = [0] * n
yield tuple(pool[i] for pool, i in zip(pools, indices))
while 1:
for i in reversed(range(n)): # right to left
if indices[i] == len(pools[i]) - 1:
continue
indices[i] += 1
for j in range(i+1, n):
indices[j] = 0
yield tuple(pool[i] for pool, i in zip(pools, indices))
break
else:
return
Es sieht aus wie Sie uns wollen einige Code schreiben für Sie. Während viele Benutzer bereit sind, Code für einen in Not geratenen Coder zu produzieren, helfen sie normalerweise nur, wenn das Poster bereits versucht hat, das Problem selbst zu lösen. Eine gute Möglichkeit, diesen Aufwand zu demonstrieren, besteht darin, den Code, den Sie bisher geschrieben haben, die Beispieleingabe (falls vorhanden), die erwartete Ausgabe und die Ausgabe, die Sie tatsächlich erhalten (Ausgabe, Rückverfolgung usw.), einzubeziehen. Je mehr Details Sie angeben, desto mehr Antworten erhalten Sie wahrscheinlich.Überprüfen Sie die [FAQ] (http://stackoverflow.com/tour) und [Wie zu fragen] (http://stackoverflow.com/questions/how-to-ask). – TigerhawkT3
Ohne 'itertools'? Dann sind es Loops, denke ich. Gibt es einen Grund, warum du 'itertools' nicht verwendest? oder es ist mehr wie eine Herausforderung für sich selbst? – pwnsauce
1. Schreiben Sie den Code mit itertools. 2. Gehen Sie zur Dokumentation von itertools. Suchen Sie für jede verwendete Funktion den Block "Diese Funktion entspricht dem folgenden Code:". 3. Kopieren Sie diese Blöcke in Ihren Code. – Kevin