for-Schleife mit zwei Iterations-Variablen und 2 Sequenzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

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?
Lebe jeden Tag, als wäre es Absicht.
BlackJack

@Silmaril: Dazu gibt es `zip()` beziehungsweise `itertools.izip()`.
Benutzeravatar
diesch
User
Beiträge: 80
Registriert: Dienstag 14. April 2009, 13:36
Wohnort: Brandenburg a.d. Havel
Kontaktdaten:

Code: Alles auswählen

for i, j in zip((1,2,3), (4,5,6)):
    print i, j
http://www.florian-diesch.de
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

Oha, manchmal kann die Lösung so einfach sein. Man muss es nur wissen.

Danke euch beiden.
Lebe jeden Tag, als wäre es Absicht.
Benutzeravatar
pillmuncher
User
Beiträge: 1527
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

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.
In specifications, Murphy's Law supersedes Ohm's.
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

sieht tatsächlich sehr nützlich aus. Werd mich mal einlesen. Für mein Problem reicht aber zip() ;)
Lebe jeden Tag, als wäre es Absicht.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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 :)
Antworten