für Schleifen in Python

8

Gibt es einen pythonischen Weg (ich weiß, dass ich mit Hilfe von range (len (..)) eine Schleife erzeugen kann und einen Index bekomme), um das folgende Beispiel zu machen:

%Vor%

Im Wesentlichen sollte die verschachtelte while-Schleife die for-Schleife inkrementieren.

Bearbeiten: Kein Datei-Handle, zwei Dinge verwirrt, an denen ich gearbeitet habe, es ist eine Liste von Strings

    
pseudosudo 26.07.2011, 17:57
quelle

2 Antworten

9

Eine der grundlegendsten Herausforderungen in Python ist es, bei der Iteration über list s und dict s clever zu werden. Wenn Sie die Sammlung während der Iteration tatsächlich ändern müssen, müssen Sie möglicherweise an einer Kopie arbeiten oder Änderungen speichern, die am Ende der Iteration angewendet werden.

In Ihrem Fall müssen Sie jedoch nur Elemente in der Liste überspringen. Sie können dies wahrscheinlich dadurch erreichen, dass Sie die Iteration in eine explizitere Form erweitern.

%Vor%

und das ist alles, was Sie wirklich tun müssen.

Bearbeiten: Wie bereits erwähnt, müssen Sie, wenn der while-Teil über das Ende der Eingabesequenz hinaus iterieren kann, etwas mehr tun. Sie können Folgendes tun.

%Vor%     
SingleNegationElimination 26.07.2011, 18:07
quelle
5

Solange file ein Datei-Handle ist, können Sie dies tun, anstatt readlines () zu verwenden:

%Vor%

Dateihandles sind iterierbar, und die Funktion next() ruft den nächsten Wert aus einem iterablen Wert ab.

    
g.d.d.c 26.07.2011 17:59
quelle

Tags und Links