2013-12-22 13 views
24

Ich versuche etwas mit Python. Ich möchte eine Liste (Plateau) in mehrere Liste schneiden (L [i]), aber ich habe die folgende Fehlermeldung:Slice-Indizes müssen Ganzzahlen oder keine sein oder haben __index__ Methode

File "C:\Users\adescamp\Skycraper\skycraper.py", line 20, in <module> 
    item = plateau[debut:fin] 
TypeError: slice indices must be integers or None or have an __index__ method 

Die betreffende Leitung ist das mit item = plateau[debut:fin]

from math import sqrt 

plateau = [2, 3, 1, 4, 1, 4, 2, 3, 4, 1, 3, 2, 3, 2, 4, 1] 

taille = sqrt(len(plateau)) 

# Division en lignes 
L = [] 
i = 1 
while i < taille: 
    fin = i * taille 
    debut = fin - taille 
    item = plateau[debut:fin] 
    L.append(item) 
    i += 1 
+1

Überprüfen Sie die tpe des Stegs und Debüt, ich glaube, die werden Schwimmer sein – M4rtini

Antwort

35

Ihrem debut und fin Werte sind Fließkommawerte, keine Ganzzahlen, da taille ein Float ist.

diese Werte ganze Zahlen Stellen statt:

item = plateau[int(debut):int(fin)] 

Alternativ machen taille eine ganze Zahl:

taille = int(sqrt(len(plateau))) 
Verwandte Themen