Ich habe eine Folge von Buchstaben und möchte alle möglichen Buchstabenkombinationen finden, indem ich die Buchstaben um einen bestimmten Buchstaben herum abschneide.
C ist hier mein Sonderbuchstabe und X kann alles sein, also mit einer Sequenz:
XCXX
Alle möglichen Kombinationen wären also:
XCXX
XCX
XC
CXX
CX
C
Gibt es dafür eine Python-Funktion oder sollte ich sie von Grund auf neu codieren?
Vielen Dank
3 Antworten
Ich hätte es so von Grund auf neu codiert:
def cuts(s,i):
return [ s[a:b] for a in range(i+1) for b in range(i+1,len(s)+1)]
Dabei ist s
die Zeichenfolge und i
der Index Ihres "Sonderbuchstabens" in s
. Beispiel:
>>> cuts('XCXX', 1)
['XC', 'XCX', 'XCXX', 'C', 'CX', 'CXX']
Nein, aber Sie könnten es als Einzeiler tun.
data = "XCXX"
cIndex = data.index("C")
permutations = [data[i:j+1] for i in range(cIndex+1)
for j in range(cIndex, len(data))]
Zählen Sie die Anzahl der Elemente vor und nach Ihrem speziellen Element C
. Dann werden Ihre Kombinationen durch diese beiden Zahlen eindeutig definiert, und Sie können einfach das Schneiden von Zeichenfolgen verwenden, um eine bestimmte zu erhalten.
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.