Kann scheinen, eine Teilstring-Funktion in Python zu finden.
Angenommen, ich möchte die ersten 100 Zeichen in einer Zeichenfolge ausgeben. Wie kann ich das tun?
Ich möchte es auch sicher machen, wenn die Zeichenfolge 50 Zeichen umfasst, sollte sie nicht fehlschlagen.
Antworten:
quelle
print 'foo'[:100]
(beachten Sie, dass dieslen('foo')
3 ist. Selbst wennfoo[100]
dies nicht funktioniert, funktioniert es)Aus dem Python-Tutorial :
So ist es sicher zu bedienen
x[:100]
.quelle
Einfach:
quelle
Um Philipps Bedenken zu beantworten (in den Kommentaren), funktioniert das Schneiden auch für Unicode-Strings
Wenn Sie den obigen Code als Skript ausführen möchten, setzen Sie diese Zeile oben
Wenn Ihr Editor nicht in utf-8 speichert, ersetzen Sie die korrekte Codierung
quelle
ς
undσ
sind die gleichen Buchstaben :-)greek_alphabet
damals nicht benannt :)Das Schneiden von Arrays erfolgt mit
[first:last+1]
.Ein Trick, den ich häufig benutze, besteht darin, zusätzliche Informationen mit Ellipsen anzuzeigen. Wenn Ihr Feld also aus hundert Zeichen besteht, würde ich Folgendes verwenden:
Und ja, ich weiß, dass
()
dies in diesem Fall für den%
Formatierungsoperator überflüssig ist , es ist nur mein Stil.quelle
Die meisten vorherigen Beispiele lösen eine Ausnahme aus, falls Ihre Zeichenfolge nicht lang genug ist.
Ein anderer Ansatz ist zu verwenden
'yourstring'.ljust(100)[:100].strip()
.Dies gibt Ihnen die ersten 100 Zeichen. Möglicherweise erhalten Sie eine kürzere Zeichenfolge, falls die letzten Zeichen Ihrer Zeichenfolge Leerzeichen sind.
quelle
String-Formatierung mit
%
ist eine gute Möglichkeit, dies zu handhaben. Hier sind einige Beispiele.Der Formatierungscode
'%s'
wird'12345'
in eine Zeichenfolge konvertiert , ist jedoch bereits eine Zeichenfolge.'%.3s'
Gibt an, dass nur die ersten drei Zeichen verwendet werden sollen.'%.7s'
sagt, die ersten sieben Zeichen zu verwenden, aber es gibt nur fünf. Kein Problem.'%7s'
Verwendet bis zu sieben Zeichen und füllt fehlende Zeichen mit Leerzeichen auf der linken Seite.'%-7s'
ist das Gleiche, außer dass rechts fehlende Zeichen ausgefüllt werden.'%5.3'
sagt, benutze die ersten drei Zeichen, aber fülle sie mit Leerzeichen auf der linken Seite, um insgesamt fünf Zeichen zu erhalten.Gleiches außer rechts ausfüllen.
Kann auch mit mehreren Argumenten umgehen!
Wenn Sie noch mehr Flexibilität benötigen,
str.format()
ist auch verfügbar. Hier ist die Dokumentation für beide.quelle
Wenn Sie also nur 100 erste Zeichen aufnehmen möchten , verwenden Sie
your_string[0:100]
oderyour_string[:100]
Wenn Sie nur das Zeichen an einer geraden Position aufnehmen möchten, verwenden Sie.your_string[::2]
Die "Standardwerte" für den Start sind 0, für das Stoppen der Zeichenfolge und für Schritt 1. Also Wenn Sie keinen seiner Werte angeben und ':' eingeben, wird der Standardwert verwendet.quelle