2012-04-05 13 views
12

Jemand gab mir eine Syntax, um eine Zeichenfolge zu kürzen, wie folgt:eine Zeichenfolge in Python Kürzen

string = "My Text String" 

print string [0:3] # This is just an example 

Ich bin nicht sicher, was das (die Zeichenfolge [0: 3] Syntax) aufgerufen wird, so dass ich Es hat mir schwer gefallen, es im Internet nachzuschlagen und zu verstehen, wie es funktioniert. Bisher ich denke, es funktioniert wie folgt:

  • string [0: 3] # gibt die ersten drei Zeichen in der Zeichenfolge
  • string [0: -3] # werden die letzten drei Zeichen der Zeichenfolge zurückgeben
  • string [3: -3] # scheint die ersten 3 Zeichen und die letzten 3 Zeichen
  • string [1: 0] trunkieren # ich gebe 2 einfache Anführungszeichen .... nicht sicher, was das tut
  • Zeichenfolge [-1: 1] # wie die letzte

Wie auch immer, es gibt wahrscheinlich ein paar andere Beispiele, die ich hinzufügen kann, aber mein Punkt ist, dass ich neu in dieser Funktionalität bin und ich frage mich, wie es heißt und wo ich weitere Informationen dazu finden kann. Ich bin mir sicher, dass ich irgendwo eine gute Referenz verpasse.

Vielen Dank für alle Anregungen, Mike

+3

Es heißt ein Stück und die Operation wird Slicing genannt. – kindall

+3

Siehe [diese berühmte Frage] (http://stackoverflow.com/questions/509211/good-primer-for-python-slice-notation). – DSM

+0

Dieses Diagramm, in dem Link von @DSM zur Verfügung gestellt: http://StackOverflow.com/A/509297/401828 – heltonbiker

Antwort

18

Es ist ein Stück genannt:

s [i: j: k]

Die Scheibe s von i nach j definiert als die Reihenfolge der Artikel mit Index k so, dass i < = k < j. Wenn i oder j größer als len (s) ist, verwenden Sie len (s). Wenn i weggelassen wird oder Keine, verwenden Sie 0. Wenn j weggelassen wird oder Keine, verwenden Sie len (s). Wenn i größer oder gleich j ist, ist die Scheibe leer.

source

+1

Vielen Dank Uku! Danke, dass Sie ihm einen Namen und ein gutes Beispiel gegeben haben, wie es funktioniert. Sehr geschätzt! – Mike

8

Wie @Uku und @thebjorn sagte seine genannte Slicing

Aber ein einfacher Weg, um eine Zeichenfolge wie eine Liste, zum Beispiel zu denken ist, dass Sie tun können, zu berücksichtigen:

text = 'Any String' 
for letter in text: 
    print letter 

Und Denken Sie daran,

>> text = 'Any String' 
>> text[4] 
'S' 

ps .: dass es Null basiert, so dass Text [4], um den fünften Brief zurück: das gleiche, wenn Sie einen bestimmten Buchstaben in der Zeichenkette erhalten möchten.

Mit Slice wird ein "substring" -Text [i: j] von Ihrem ursprünglichen String zurückgegeben, wobei "i" der Anfangsindex (inklusive) und "j" der Endindex (exklusiv) sind, zum Beispiel:

>> text = 'Any String' 
>> text[4:6] # from index 4 to 6 exclusive, so it returns letters from index 4 and 5 
'St' 
>> text[0:4] 
'Any ' 
>> text[:4] # omiting the "i" index means i = 0 
'Any ' 
>> text[4:] # omitting the "j" index means until the end of the string 

ein negativer Index wird an das Ende der Schnur im Verhältnis wie eine Substitution von dem negativen Index machen „lEN (Text) + i“ an.

In unserem Fall ist len ​​(Text) 10, ein negativer Index -1 ist wie mit text [9], um das letzte Element zu erhalten, -2 wird das vorletzte Element usw. zurückgeben.

In den Beispielen versandt, string [0: -3] alles, aber letzten 3 Zeichen und String zurück sollte [3: -3] sollte alles andere als erste 3 und letzte 3.

Hoffnung zurückgeben helpped.