2017-05-31 1 views
0

Ich testete den folgenden Code mit einigen Daten, funktioniert die Liste innerhalb der for-Schleife. Aber nach der for-Schleife enthält die Liste nichts. Woher? Ich brauche die Liste zur weiteren Verwendung innerhalb des Programms, so dass ich sie nicht manuell über die Tastatur unterbrechen kann.Python, ich versuchte, Daten mit stdin zu lesen und zu verdecken, aber es scheint, die Daten sind außerhalb für Schleife verloren

l = [] 


for line in sys.stdin: 
    if line == '': 
     l.append([]) 
    else: 
     new_list = [int(i) for i in line.split()] 
     l.append(new_list) 
     print(l) # list works 

print(l) # list fails 
+0

Haben Sie versucht, input() oder in python2.x raw_input zu verwenden, um die Eingabe zu erhalten? –

+0

Es gibt ein * blackhole * zwischen dem 'for' und dem finalen' print'? Irgendein Code, den du nicht zeigst? –

+0

Ihr Code funktioniert für mich (auch wenn es nie aus der Schleife kommt, außer ich Strg + C drücken und Python beenden, in diesem Moment bekomme ich eine Ausgabe Ihrer Liste) –

Antwort

0

Um außerhalb der for-Schleife gehen Sie Ihren Code brechen und es denke ich das „l“ Information verloren geht!

Sie können ein Zeichen verwenden, um sich außerhalb der Schleife zu bewegen (Pause) oder eine längere Zeit verwenden. Ciao und einen schönen Tag!

Um die Eingabe wie vorgeschlagen zu bekommen, würde ich die Eingabe oder raw_input in Python2 verwenden!

2

Ich glaube nicht, dass Sie jemals die for-Schleife verlassen, um die zweite print (l) -Anweisung auszuführen.

Wenn Sie Ctrl-d für das Ende der Datei Tastatur Interrupt drücken, verlassen Sie die for-Schleife und die zweite Druckanweisung wird wie erwartet ausgeführt.

Verwandte Themen