2010-08-15 4 views
62

Scheint, eine Teilzeichenfolgefunktion in Python zu finden.Ausgabe der ersten 100 Zeichen in einer Zeichenfolge

Angenommen, ich möchte die ersten 100 Zeichen in einer Zeichenfolge ausgeben, wie kann ich das tun?

Ich möchte es auch sicher tun, wenn die Zeichenfolge 50 Zeichen ist, sollte es nicht fehlschlagen.

+2

Das Follow-up zu dieser Frage ist: [Gute Grundierung für Python Slice-Notation] (http://StackOverflow.com/Questions/509211/Good-Primer-for-python-Slice-Notation) –

+1

Was meinst du mit " Figuren"? Codepunkte, Graphem-Cluster oder Code-Einheiten? Slicing zählt Code-Einheiten, die nicht das gewünschte Ergebnis liefern. – Philipp

Antwort

96
print my_string[0:100] 
+1

Sie können auch 'my_string [: 100]', richtig? – nnyby

21

Ganz einfach:

print mystring[:100] 
48

Von python tutorial:

Entartete Scheibe Indizes behandelt werden anmutig: ein Index, der zu groß ist durch die Stringgröße ersetzt wird, ein obere Grenze kleiner als die untere Grenze gibt ein leer zurück y Zeichenfolge

So ist es sicher zu verwenden x[:100].

4

Das Schneiden von Arrays erfolgt mit [first:last+1].

Ein Trick, den ich verwende, ist es, zusätzliche Informationen mit Ellipsen anzugeben. Also, wenn Ihr Feld einhundert Zeichen ist, würde ich verwenden:

if len(s) <= 100: 
    print s 
else: 
    print "%s..."%(s[:97]) 

Und ja, ich weiß () in diesem Fall für die % Formatierung Bediener überflüssig ist, es ist nur mein Stil.

+0

Ich denke, das war als Denkanstoß gedacht, aber im OP würde ich wahrscheinlich nicht vorschlagen, das zu tun. Das Ergebnis wäre eine Zeichenkette, die Sie nach Inhalt suchen müssten, um weiter zu schneiden oder so etwas.In diesem Fall würde ich mir vorstellen, dass man entweder möchte, dass diese Zahl variabel ist, und dass das Ergebnis immer korrekt ist, oder die zu reparierende Zahl und die Handhabung entweder etwas Bedeutungsvolles hervorbringt, oder Fehler oder Rückkehr im Falle eines Fehlers. Ich kann mir nicht viele Fälle vorstellen, abgesehen von der Lieferung von menschenlesbaren Informationen, wo ich willkürlich Text zu einer Zeichenfolge hinzufügen möchte. –

6

Um Philipp Sorge (in den Kommentaren) zu beantworten, Slicing ok funktioniert auch für Unicode-Strings

>>> greek=u"αβγδεζηθικλμνξοπρςστυφχψω" 
>>> print len(greek) 
25 
>>> print greek[:10] 
αβγδεζηθικ 

Wenn Sie den obigen Code als ein Skript ausgeführt werden soll, setzen Sie diese Zeile am oberen

# -*- coding: utf-8 -*- 

Wenn Ihr Editor nicht in utf-8 speichern, ersetzen die richtige Codierung

+1

Ihre Antwort nicht abwertend, aber da gibt es nur 24 Buchstaben auf Griechisch, "' "und" σ "sind der gleiche Buchstabe :-) – paxdiablo

+3

@paxdiablo, doh! Ich habe sie von der Wikipedia-Seite kopiert. Zum Glück habe ich die Variable 'greek_alphabet' dann nicht genannt :) –

1

die meisten vorherigen Beispielen wird eine Ausnahme für den Fall, heben Sie die Zeichenfolge nicht lang genug ist.

Ein anderer Ansatz ist die Verwendung 'yourstring'.ljust(100)[:100].strip().

Dies gibt Ihnen die ersten 100 Zeichen. Sie könnten eine kürzere Zeichenfolge erhalten, falls Ihre letzten Zeichen Leerzeichen sind.

Verwandte Themen