Wie kann ich den Doppelpunkt (:) in der Variablen [duplizieren] verwenden?

7

Ich möchte Code wie folgt schreiben:

%Vor%

aber das funktioniert nicht.

Gibt es eine Möglichkeit, alle Teile der [...:...] -Syntax in einer Variablen zu speichern?

    
giorgi shengelaia 10.11.2016, 15:56
quelle

2 Antworten

17

Sie möchten ein slice() -Objekt :

%Vor%

slice() modelliert die Werte für Start, Stopp und Schritt, die Sie in der Subsyntax [start:stop:stride] als Objekt angeben können.

Aus der Dokumentation:

  

Geben Sie ein Objekt slice zurück, das die durch range(start, stop, step) angegebene Gruppe von Indizes darstellt. Die Start- und Schrittargumente werden standardmäßig auf None gesetzt. Slice-Objekte haben schreibgeschützte Datenattribute start , stop und step , die lediglich die Argumentwerte (oder deren Standardwerte) zurückgeben.

Unter dem Deckmantel übersetzt Python Subskriptionen tatsächlich in ein slice() -Objekt beim Aufruf von benutzerdefinierten __getitem__ Methoden:

%Vor%

Eine praktikable Alternative wäre, Start und Stopp als separate Werte zu speichern:

%Vor%     
Martijn Pieters 10.11.2016, 15:57
quelle
11

Sie können stattdessen ein slice Objekt erstellen:

%Vor%

Achten Sie darauf, nicht list als Namen zu verwenden, um eine Verschattung der eingebauten Funktion list zu vermeiden.

Aus der Dokumentation:

  

slice(start, stop[, step])

     

Gibt ein Segmentobjekt zurück, das die Menge der durch angegebenen Indizes repräsentiert    range(start, stop, step)

    
Moses Koledoye 10.11.2016 15:57
quelle

Tags und Links