Modul itertools.combinations() in Python zum Drucken aller möglichen Kombinationen
Generieren und drucken Sie bei einem Array der Größe n alle möglichen Kombinationen von r Elementen im Array.
Beispiele:
Eingabe: arr [] = [1, 2, 3, 4], r = 2 Ausgabe: [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
Für dieses Problem gibt es eine rekursive Lösung. Weitere Informationen finden Sie unter Drucken aller möglichen Kombinationen von r Elementen in einem bestimmten Array der Größe n Link. Wir werden dieses Problem in Python mit dem Modul itertools.combinations() lösen .
Was macht itertools.combinations()?
Es werden Teilfolgen von Elementen mit r Länge von der iterierbaren Eingabe zurückgegeben. Kombinationen werden in lexikografischer Sortierreihenfolge ausgegeben. Wenn die iterierbare Eingabe sortiert ist, werden die Kombinationstupel in sortierter Reihenfolge erstellt.
- itertools.combinations (iterable, r):
Es werden Tupel mit r-Länge in sortierter Reihenfolge ohne wiederholte Elemente zurückgegeben. Zum Beispiel Kombinationen ('ABCD', 2) ==> [AB, AC, AD, BC, BD, CD]. - itertools.combinations_with_replacement (iterable, r):
Es werden Tupel mit r-Länge in sortierter Reihenfolge mit wiederholten Elementen zurückgegeben. Zum Beispiel Kombinationen mit Ersetzung ('ABCD', 2) ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].
bearbeiten
schließen
play_arrow
Link
Helligkeit_4
Code
from itertools import combinations def rSubset(arr, r): return list (combinations(arr, r)) if __name__ = = "__main__" : arr = [ 1 , 2 , 3 , 4 ] r = 2 print (rSubset(arr, r)) |
Ausgabe:
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
Dieser Artikel wurde von Shashank Mishra (Gullu) verfasst . Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel mit Contrib.geeksforgeeks.org schreiben oder Ihren Artikel an Contribute@geeksforgeeks.org senden . Sehen Sie sich Ihren Artikel auf der GeeksforGeeks-Hauptseite an und helfen Sie anderen Geeks.
Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten.