Seite 1 von 1

for-Schleife mit zwei Iterations-Variablen und 2 Sequenzen

Verfasst: Donnerstag 7. März 2013, 13:53
von Silmaril
Hallo Leute

Ich frage mich, ob es in Python nicht vielleicht möglich ist, mit einer for-Schleife über zwei Sequenzen zu iterieren und damit zwei Variablen gleichzeitig zu füllen. Also etwa so:

Code: Alles auswählen

for i, j in (1,2,3), (4,5,6):
    print i, j
leider kommt dann:

Code: Alles auswählen

Traceback (most recent call last):
  File "blabla", line 2, in <module>
    for i, j in (1,2,3), (4,5,6):
ValueError: too many values to unpack
Muss ich mich damit zufrieden geben und auf sowas

Code: Alles auswählen

s1, s2 = (1,2,3), (4,5,6)
for i in range(3):
    print s1[i], s2[i] 
zurückgreifen?

Re: for-Schleife mit zwei Iterations-Variablen und 2 Sequenz

Verfasst: Donnerstag 7. März 2013, 13:56
von BlackJack
@Silmaril: Dazu gibt es `zip()` beziehungsweise `itertools.izip()`.

Re: for-Schleife mit zwei Iterations-Variablen und 2 Sequenz

Verfasst: Donnerstag 7. März 2013, 13:58
von diesch

Code: Alles auswählen

for i, j in zip((1,2,3), (4,5,6)):
    print i, j

Re: for-Schleife mit zwei Iterations-Variablen und 2 Sequenz

Verfasst: Donnerstag 7. März 2013, 14:00
von Silmaril
Oha, manchmal kann die Lösung so einfach sein. Man muss es nur wissen.

Danke euch beiden.

Re: for-Schleife mit zwei Iterations-Variablen und 2 Sequenz

Verfasst: Donnerstag 7. März 2013, 14:15
von pillmuncher
Wenn ich auf die sprichwörtliche einsame Insel müsste und nur ein Modul mitnehmen dürfte, dann wäre das itertools. IMO kann man Python nicht verstehen, solange man itertools nicht versteht.

Re: for-Schleife mit zwei Iterations-Variablen und 2 Sequenz

Verfasst: Donnerstag 7. März 2013, 14:19
von BlackJack
@pillmuncher: +1 :-)

Re: for-Schleife mit zwei Iterations-Variablen und 2 Sequenz

Verfasst: Donnerstag 7. März 2013, 15:08
von Silmaril
sieht tatsächlich sehr nützlich aus. Werd mich mal einlesen. Für mein Problem reicht aber zip() ;)

Re: for-Schleife mit zwei Iterations-Variablen und 2 Sequenz

Verfasst: Donnerstag 7. März 2013, 15:48
von cofi
pillmuncher hat geschrieben:IMO kann man Python nicht verstehen, solange man itertools nicht versteht.
Also war Python in den Versionen vor 2.3 unverstaendlich? SCNR :twisted:

Ich liebe itertools, aber so weit wuerde ich dann doch nicht gehen. Aber zu "Ohne itertools kann man keinen schoenen (iterationsintensiven) Python Code schreiben" liesse ich mich hinreissen :)