Vermeiden Sie mehrere Schleifen in Python

Einführung

Ich habe zuvor einen Ruby-Artikel mit dem Titel Vermeiden Sie mehrere Schleifen mit Array # -Produkt veröffentlicht. In diesem Artikel wird Array # product verwendet, um mehrere Schleifen in einzelne Schleifen umzuwandeln [^ 1 ] Einführung in die Methode. Ich habe mich in diesen Tagen persönlich mit Python beschäftigt und versucht herauszufinden, wie man in dieser Sprache schreibt.

Beispielcode vor Änderung

python


for year in range(2010, 2013):
  for i in range(1, 3):
    for char in ('a', 'b', 'c'):
      print(year, i, char)

stdout


2010 1 a
2010 1 b
2010 1 c
2010 2 a
2010 2 b
2010 2 c
2011 1 a
2011 1 b
2011 1 c
2011 2 a
2011 2 b
2011 2 c
2012 1 a
2012 1 b
2012 1 c
2012 2 a
2012 2 b
2012 2 c

Methode 1: Verwenden Sie itertools.product ()

So finden Sie das kartesische Produkt (direktes Produkt) von itertools.product () in Python sowie das Array # -Produkt in Ruby. Es gibt eine Funktion von.

python


from itertools import product

years = range(2010, 2013)
integers = range(1, 3)
chars = ('a', 'b', 'c')

for year, i, char in product(years, integers, chars):
  print(year, i, char)

Methode 2: Verwenden Sie die Einschlussnotation

Eine verschachtelte Einschlussnotation ist ebenfalls verfügbar.

python


years = range(2010, 2013)
integers = range(1, 3)
chars = ('a', 'b', 'c')

combinations = [(year, i, char)
                for year in years
                for i in integers
                for char in chars]

for year, i, char in combinations:
  print(year, i, char)

Bonus: Für Ruby

ruby


years = Array(2010..2012)
integers = Array(1..2)
chars = Array('a'..'c')

years.product(integers, chars) { |year, i, char| puts("#{year} #{i} #{char}") }

Referenz

[^ 1]: Es ist nur eine Darstellung, und es geht darum, die Anzahl der Schleifen-Syntax-Einzüge von mehreren auf eins zu ändern. Es reduziert weder die Anzahl der internen Schleifen noch den Rechenaufwand.

Recommended Posts

Vermeiden Sie mehrere Schleifen in Python
Vermeiden Sie verschachtelte Schleifen in PHP und Python
Mehrfacher Regressionsausdruck in Python
Vermeiden Sie KeyError im Python-Wörterbuch
[Python] Mit Tkinter mehrere Fenster anzeigen
Statistischer Test (Mehrfachtest) in Python: scikit_posthocs
Löschen Sie mehrere Elemente in der Python-Liste
Behandeln Sie mehrere Python-Versionen in einem Jupyter
Wenn Sie mehrere Schlüssel in Python-Sortierung angeben
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Senden Sie mit Python (Python3) E-Mails an mehrere Empfänger.
Epoche in Python
Zwietracht in Python
Dekorateur zur Vermeidung von UnicodeEncodeError in Python 3 print ()
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
Verarbeiten Sie mehrere Listen mit for in Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Holen Sie sich mehrere maximale Schlüssel im Python-Wörterbuchtyp
[Python] Umgang mit mehreren Aufruffehlern in ray.init
Sortierte Liste in Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Über Python für Schleife