2016-03-28 16 views
1

Ich versuche, die Indizes leerer/leerer Leerzeichen innerhalb einer Liste ('') zu übernehmen und diese in eine neue Liste einzufügen. Wenn ich dies tue, hängt es den ersten Index jedoch immer wieder an.Anfügen von Indizes aus der Liste funktioniert nicht richtig

Ich weiß, dass diese Lösung unglaublich einfach sein muss, aber es hat mich den ganzen Nachmittag frustriert.

Druck TLIST gibt mir [3,3,3,3,3,3,3,3,3,3,3 .......]

+0

Es wäre hilfreich, wenn Sie getaggt haben, in welcher Sprache Sie dies versuchen. – NAMS

+0

Ja, das war mein Fehler. Fest –

Antwort

1

Die index() Funktion zurückgibt den Index das erste Auftreten des Wertes, so wird es nicht funktionieren. Versuchen Sie stattdessen, indem eine Liste Verständnis mehr Sinn macht, und enumerate() wird Ihnen sagen, den Index jedes Elements:

tlist = [idx for idx, line in enumerate(line_list) if line == ''] 
0

Die index() Funktion in Python gibt nur das erste Vorkommen des Elements angegeben. Daher fügen Sie nur den Index des ersten Vorkommens eines leeren Elements an tlist an. Verwenden Sie stattdessen die Funktion enumerate, mit der Sie auch die Indexnummer in einer Variablen durchlaufen können.

for index, line in enumerate(line_list): 
    if line == '': 
     tlist.append(index) 

Alternativ können Sie auch eine while Schleife verwenden, die ich persönlich statt enumerate mit der for each der Verwendung Schleife würde empfehlen. Hier

index = 0 
while index < len(line_list): 
    line = line_list[index] 
    if line == '': 
     tlist.append(index) 
    index += 1 

Welche Methode Sie wählen, liegt an Ihnen, sie funktionieren beide gut.