[PYTHON] Sequenzgenerierung

Sequenzgenerierung

Generieren einer Sequenz mithilfe der itertools-Permutation itertools ist ein Modul zur Iteratorgenerierung.

test_permutation.py


import itertools
print('permutations(range(4))   : ', list(itertools.permutations(range(4) ) ) )
print('permutations(range(4), 2): ', list(itertools.permutations(range(4), 2 ) ) )

permutations(range(4)) : [(0, 1, 2, 3), (0, 1, 3, 2), (0, 2, 1, 3), (0, 2, 3, 1), (0, 3, 1, 2), (0, 3, 2, 1), (1, 0, 2, 3), (1, 0, 3, 2), (1, 2, 0, 3), (1, 2, 3, 0), (1, 3, 0, 2), (1, 3, 2, 0), (2, 0, 1, 3), (2, 0, 3, 1), (2, 1, 0, 3), (2, 1, 3, 0), (2, 3, 0, 1), (2, 3, 1, 0), (3, 0, 1, 2), (3, 0, 2, 1), (3, 1, 0, 2), (3, 1, 2, 0), (3, 2, 0, 1), (3, 2, 1, 0)] permutations(range(4), 2): [(0, 1), (0, 2), (0, 3), (1, 0), (1, 2), (1, 3), (2, 0), (2, 1), (2, 3), (3, 0), (3, 1), (3, 2)]

Sie können einfach eine solche Sequenz generieren. Sie können die Anzahl der Zahlen in der Zahlenfolge festlegen, indem Sie im ersten und im zweiten Argument eine iterierbare Zahl einfügen.

Da bei dieser Sequenzgenerierung nur die empfangenen iterierbaren Positionen (Liste usw.) berücksichtigt werden, wird sie dupliziert, wenn dieselbe Nummer usw. enthalten ist. Wenn Sie beispielsweise "[1,2,2]" übergeben, wird "1,2,2" nur als "0,1,2" in ".permutations" betrachtet. Es wird also nicht davon ausgegangen, dass dieselbe Nummer angezeigt wird. Die schnellste Lösung besteht darin, die Duplizierung mit set () zu beseitigen. Beachten Sie, dass die Verwendung von set () viel Speicher benötigt, wenn die Anzahl der Spalten groß wird.

Recommended Posts

Sequenzgenerierung
[Python] Generieren einer Sequenz, die dieselben Elemente berücksichtigt
Datensatzgenerierung
# Zufällige Zeichenfolgengenerierung
Automatische Mosaikerzeugung