im for befehl mehrere variablen unterbringen???
im for befehl mehrere variablen unterbringen???
kann man in einem for befehl irgendwie 2 variablen unterbringen??
folgendes hab ich shcon versucht hat abe nricht funktioniert:
for p and q in range (a,b)
for p,q in range (a,b)
for p in range (a,b) and q in range (a,b)
das hat alles nicht funktioniert!
hofe auf shcnelle hilfe!
folgendes hab ich shcon versucht hat abe nricht funktioniert:
for p and q in range (a,b)
for p,q in range (a,b)
for p in range (a,b) and q in range (a,b)
das hat alles nicht funktioniert!
hofe auf shcnelle hilfe!
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
Als liste1 und liste2 kannst du natürlich auch range(a,b) nehmen.
Gruss
Code: Alles auswählen
from itertools import izip
for x,y in izip(liste1, liste2):
print x,y
Als liste1 und liste2 kannst du natürlich auch range(a,b) nehmen.
Gruss
Die Variante ``for p, q in iterable:`` funktioniert, allerdings musst Du dafür über Elemente iterieren, die sich auf auf zwei Namen "verteilen" lassen, also zum Beispiel Tupel.
Was sollte denn Deine Schleife für eine Bedeutung haben, also was hättest Du erwartet an was `p` und `q` in jedem Schleifendurchlauf gebunden sind?
Code: Alles auswählen
In [4]: for p, q in ((1, 2), (42, 23)):
...: print '%s und %s' % (p, q)
...:
1 und 2
42 und 23
Was sollte denn Deine Schleife für eine Bedeutung haben, also was hättest Du erwartet an was `p` und `q` in jedem Schleifendurchlauf gebunden sind?
Mit zip (und wohl auch izip) fasst du immer die Elemente an einem bestimmten index zusammen, also bei range dann (0,0), (1,1), etc. was wohl nicht wirklich das ist, was Cthulhu will...
Mit list-comprehension kann man sowas machen
aber damit eine Liste erzeugen und darüber wieder mit for iterieren wäre IMHO schon etwas pervers...
Mit list-comprehension kann man sowas machen
Code: Alles auswählen
[(p,q) for p in range(a) for q in range(b)]
aber damit eine Liste erzeugen und darüber wieder mit for iterieren wäre IMHO schon etwas pervers...
Code: Alles auswählen
for u in range(fnord):
for v in range(fnord):
print u,v
oder so:
Code: Alles auswählen
def fnord(s1, s2):
for u in s1:
for v in s2:
yield u,v
for quux in fnord(range(10), range(100, 110)):
print quux
...meh...
Was spricht gegen die variante von rayo oder BlackJack?
Wenn ich über mehrere iterables iterieren will, benutze ich immer `izip` weils die sauberste und einfachste Lösung ist. Extra eine eigene Funktion schreiben die im grunde das gleiche macht ist mMn unnötig.
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
from itertools import izip
for x,y in izip(range(10), range(100,110)):
print x,y
Wenn ich über mehrere iterables iterieren will, benutze ich immer `izip` weils die sauberste und einfachste Lösung ist. Extra eine eigene Funktion schreiben die im grunde das gleiche macht ist mMn unnötig.
sape hat geschrieben:Was spricht gegen die variante von rayo oder BlackJack?Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
from itertools import izip
for x,y in izip(range(10), range(100,110)):
print x,y
Wenn ich über mehrere iterables iterieren will, benutze ich immer `izip` weils die sauberste und einfachste Lösung ist. Extra eine eigene Funktion schreiben die im grunde das gleiche macht ist mMn unnötig.
kommt drauf an, was er erreichen will - so wie ich es interpretiert habe, will er eine kürzere form für
Code: Alles auswählen
for x in range(10):
for y in range(100,110):
print x,y
und das ist etwas anderes
Ich habe den Verdacht das er etwas ganz anderes will wenn ich daran denke dass das Fernziel, das herausfinden von Primzahlzwillingen sein könnte. Aber bevor wir weiter herumraten ob zwei Listen gepaart werden sollen oder das kartesische Produkt von einem Zahlenbereich gefragt ist, sollte er vielleicht einfach sagen was er möchte.
Mit der *selben* Zahl? Und das heisst Prim und nicht Priem. Es sei denn es gibt wirklich Kautabak-Zahlen. 

und dafür rbäuchte ich das halt eben so dass 2 variablen in einem for befehl mit der selber zahl definiert werden!
Code: Alles auswählen
from itertools import izip
for x, y in izip(xrange(10), xrange(10)):
print x, y
Code: Alles auswählen
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Aber wo ist da der Sinn, das x und y jeweils die gleiche Zahl haben?
Dan kannst du ja gleich das schreiben:
Code: Alles auswählen
y = 0
for x in xrange(10):
y = x
print x, y
lg
Wer ist online?
Mitglieder in diesem Forum: Bing [Bot]