Grundsätzlich möchte ich ein Listenverständnis über das "kartesische Produkt" zweier Iteratoren aufbauen. Denken Sie über den folgenden Haskell-Code nach:
%Vor%was zu
führt %Vor%Kann ich ein ähnliches Verhalten in Python auf präzise Weise erhalten?
Das kartesische Produkt befindet sich im Modul itertools (in 2.6).
%Vor%Wissenswertes über das verschachtelte Verständnis: Es imitiert verschachtelte "for" -Schleifen, so dass die inneren Werte von äußeren verwenden können. Dies ist im kartesischen Produktfall nicht sinnvoll, aber gut zu wissen. Zum Beispiel:
%Vor% erzeugt alle Paare (i,j)
wo 0>=i>j>10
.
Das scheint zu tun, was Sie beschreiben:
[[a, b] für einen Bereich (1,3) für b im Bereich (1,5)]
UPDATE: Drat! Sollte die Seite neu geladen haben, um S.Lott's Antwort vor dem Posten zu sehen. Hmmm ... was für einen kleinen Mehrwert zu tun? Vielleicht ein kurzer Hinweis auf die Nützlichkeit des interaktiven Modus mit Python.
Ich komme vor kurzem aus einem Hintergrund mit Perl. Bei solchen Problemen finde ich es sehr hilfreich, "python" an der Befehlszeile einzugeben und in den interaktiven Modus zu wechseln und a) Dinge auszuprobieren und b) Feinheiten zu verfeinern indem ich den Aufwärts-Pfeil drücke und meinen vorherigen Versuch anpasse, bis ich bekomme, was ich will. Jedes Mal, wenn ich bei einem Keyword nicht weiß, ist Hilfe verfügbar. Geben Sie einfach help ("some_keyword") ein, lesen Sie die kurze Zusammenfassung, drücken Sie "Q" und ich bin wieder in der direkten Konversation mit dem Python-Interpreter.
Empfohlen, wenn Sie ein Anfänger sind und es nicht benutzen.
Tags und Links python list-comprehension iterator