2017-02-01 6 views
-1

So verstehe ich, wie Sie alles außer dem ersten Buchstaben in einer Zeichenfolge in Python zurückgeben. Ich möchte wissen, warum es auf eine bestimmte Weise nicht funktioniert. Mein Professor sagte mir alles, aber die ersten Buchstaben eines Strings zurück es in etwa so aussehen würde ...Zurückgeben alles außer dem ersten Buchstaben einer Zeichenfolge in Python

ein 'Garten' =

ein [1: len (a) - 1]

Aber wenn ich dies in den Interpreter bekomme, bekomme ich

'Arde' anstelle von 'Arden'.

Ich weiß, dass len (a) - 1 5 zurückgibt und dass der fünfte Index von a ist n. Auch wenn ich so etwas sagen wie

a [1] + a [2] + a [3] + a [4] + a [5]

I zurückkehrt ...

'arden' .

Also was fehlt mir? Ich habe das Gefühl, dass dies nur eine Nuance von Python ist und ich sollte das notieren. Ich wollte nur sicherstellen, dass ich nichts Wichtiges verpasse. Vielen Dank!!

+0

Array-Indizierung in Python ist nullbasiert – EngineerCamp

+0

Slices enthalten den Endpunkt nicht. – user2357112

+0

Danke 2357112. – bastwendo

Antwort

0

Die Array-Indizierung in Python ist nullbasiert.

Versuchen: a = 'Garten'

a[:-1] 

Ausgang:

garde 

Beachten Sie, dass, wenn Sie nicht den Startindex angeben, Null angenommen wird.

0

Python A slice [j: k] ist von der Position j, in nullbasierten Indizierung bis zu aber nicht einschließlich Position k. So erhalten Sie ein [1: 5] Elemente 1, 2, 3, & 4 - 5 (das ist das sechste Element) ist nicht enthalten.

Wie Foon bereits erwähnt, ist der kanonische Weg, dies zu tun, ist einfach

a[1:] 

Ein fehlendes Stück Wert angenommen wird, das „vernünftige“ Ende sein: 0 auf der linken Seite, -1 (letztes Element) rechts und 1 für das Intervall (normalerweise weggelassen). Somit ist eine typische Art und Weise eine ganze Zeichenfolge oder Liste zu kopieren ist mit

new = old[:] 
0

Obwohl bereits von EnginnerCamp hier ist eine Darstellung beantworten Ihnen zu helfen.

Das Array bei Null beginnt, so dass die Zeichenkette als

0 1 2 3 4 5 
g a r d e n 

Die Länge dieser Zeichenfolge gespeichert ist, ist aber, weil wir bei Null das letzte Zeichen in der an der Stelle beginnen Zählen Zeichenfolgenarray.

Wenn Sie a[1:len(a) - 1] ausführen, sind die Anweisungen, die Sie geben;

take string a      'garden' 
start at position 1    'a' (because the 'g' is at position 0) 
find the length of a    6 
subtract 1       5 
end at the 5th item BUT start at 0 'e' 

So Ihre Ausgabe-String aus dem Code ist arde

Um alles außer das erste Zeichen zu bekommen sollten Sie a[1:]

Es Sie mit beginnen vereiteln verwenden, dann natürlich geworden als du gewinnst Übung.

Verwandte Themen