Ich habe eine ganze Zahl zum Beispiel "123", mit dieser ich möchte alle möglichen Kombinationen unten aufgeführt erstellen. 12,3 1,23 usw. unabhängig von den Ziffern, die ich eingegeben habe. Gibt es eine Möglichkeit mit Python für die gleiche? Ich bin nicht in der Lage, eine Idee zu bekommen.Python erstellen alle möglichen Kombinationen aus einer ganzen Zahl
Antwort
Ich denke, das ist das, was Sie suchen:
num = 123
s = str(num)
[[x for x in i if x is not '' and ' '] for i in [list(s.partition(item)) for item in list(s+' ')]]
Ausgang:
[['1', '23'], ['1', '2', '3'], ['12', '3'], ['123']]
Sie könnten auch Tupel verwenden:
s = str(num)
[tuple([x for x in i if x is not '' and ' ']) for i in [list(s.partition(item)) for item in list(s+' ')]]
Ausgang:
[('1', '23'), ('1', '2', '3'), ('12', '3'), ('123',)]
Dies ist wahrscheinlich, was das OP will, aber Raten kann gefährlich sein, wenn Sie falsch raten. ;) BTW, es ist im Allgemeinen keine gute Idee, "ist" zu verwenden, um Zeichenfolgen zu prüfen, da "ist" Testidentität, nicht Wert. Es funktioniert hier, weil CPython die leere Zeichenfolge optimiert, und es wird oft mit kurzen Zeichenfolgen arbeiten, die vom Interpreter wiederverwendet werden, aber es wird nicht immer funktionieren. Siehe [Warum führt das Vergleichen von Strings in Python mit '==' oder 'is' manchmal zu einem anderen Ergebnis?] (Https://stackoverflow.com/q/1504717/4014959) für weitere Details. –
BTW, 'wenn x nicht ist '' und '' 'wird interpretiert als' wenn (x ist nicht '') und '' ', und daher ist es logisch äquivalent zu' wenn x '. Die leere Zeichenfolge hat einen booleschen Wert von "False", und jede andere Zeichenfolge hat einen booleschen Wert von "True". Wenn also "x" die leere Zeichenfolge ist, wird "x" nicht zu "false" ausgewertet, so dass der "if" -Test fehlschlägt. Andernfalls wird 'x nicht '' 'zu' True' ausgewertet, der zweite Operator von 'and' (' '' ') wird zum Wert des Ausdrucks, also wird der 'if' Test bestanden. –
Danke, ich habe den 'if (x ist nicht '') und '' 'Teil nicht bemerkt. Obwohl, überraschenderweise, mein Code löschte das nachlaufende und führende '''' und ''' genau so, wie ich es brauchte. – nikpod
Dies funktionieren würde:
import itertools
stuff = list('123')
for L in range(0, len(stuff)+1):
for subset in itertools.combinations(stuff, L):
print(subset)
Ausgang:
()
(1,)
(2,)
(3,)
(1, 2)
(1, 3)
(2, 3)
(1, 2, 3)
Ich möchte die Ausgabe von "123" wie (1,2,3), (12,3), (1,23) und so weiter –
@srivathsakenkere Bearbeiten Sie die Frage –
- 1. alle möglichen Kombinationen von einer String-Darstellung einer Zahl
- 2. Erstellen Sie alle möglichen Kombinationen von
- 3. bekommt alle möglichen Kombinationen aus einer Liste von Zahlen
- 4. generieren alle möglichen Kombinationen ineffizient
- 5. Berechnen Sie alle möglichen Kombinationen aus verschiedenen Array in Python
- 6. algorithmische Funktion alle möglichen Kombinationen aus einer Liste von Vektoren
- 7. Alle möglichen Kombinationen von Elementen einer Liste
- 8. Entfernen Sie alle Vorkommen einer ganzen Zahl aus der Liste
- 9. Ein Wort in alle möglichen "Unterwörter" aufteilen - Alle möglichen Kombinationen
- 10. drucken alle möglichen Kombinationen mit Zahlen
- 11. Python zählt alle möglichen Kombinationen für eine Tabelle
- 12. Generieren Sie alle möglichen Kombinationen aus 2 Foreign Keys
- 13. JSON Schema alle möglichen Kombinationen von enum
- 14. Python alle möglichen Kombinationen von 0,1 der Länge k
- 15. Gehen Sie durch alle möglichen Kombinationen eines Arrays Python
- 16. Java Finden Sie alle möglichen Kombinationen aus Spalten
- 17. Alle möglichen Kombinationen, Auswahl eines Elements aus mehreren ArrayLists
- 18. Python alle Kombinationen aus einer Liste von Listen
- 19. MySQL alle möglichen Kombinationen bilden mehrere Tabellen
- 20. Intersect alle möglichen Kombinationen von Listenelementen
- 21. alle möglichen Kombinationen Get Zeile in Matrix
- 22. alle möglichen Kombinationen von 2 Arrays
- 23. [Python]: generieren und Array aller möglichen Kombinationen
- 24. Alle möglichen Kombinationen von Zeichen in einer Zeichenfolge
- 25. Alle möglichen Kombinationen in einer dynamischen Reihenfolge versuchen
- 26. Listen Sie alle möglichen Kombinationen von k ganzen Zahlen zwischen 1 ... n (n wählen k)
- 27. Python Erstellen neuer Spalten/Attribute über alle möglichen Kombinationen von Variablen
- 28. SQL Server möglichen Kombinationen
- 29. Der effizienteste Weg, um alle möglichen Kombinationen von vier Listen in Python zu erstellen?
- 30. Alle Kombinationen erstellen Java
Haben Sie am itertools Modul geschaut und die Kombinationen/Permutationen Funktionen? –
Ja itertools gibt mir eine Ausgabe wie "['123', '132', '213', '231', '312', '321']". Aber ich brauche eine Ausgabe von 123 wie (1,2,3), (12,3), (1,23) usw. –
Ihre Frage ist derzeit zu vage. Ist die Reihenfolge wichtig? Sollte die Ausgabe (1,32) enthalten? Sollte es (1,2,3) und (3,1,2) enthalten? –