Seite 1 von 1
verschachtelte Schleife kompremieren
Verfasst: Montag 1. November 2010, 14:42
von Xynon1
Gibt es eine Möglichkeit auch verschachtelte Schleifen zu kompremieren, also
Code: Alles auswählen
for x in range(10):
for y in range(10):
x + y
#kann man das irgendwie in eine solche Form bringen ?
[x + y for x,y in range(10), range(10)]
Frage ist rein Interesserhalber.
Re: verschachtelte Schleife kompremieren
Verfasst: Montag 1. November 2010, 14:54
von Hyperion
Für diesen speziellen Fall ginge das hier:
Code: Alles auswählen
In [31]: from itertools import product
In [32]: map(sum, (product(range(10), range(10))))
Re: verschachtelte Schleife kompremieren
Verfasst: Montag 1. November 2010, 14:56
von DasIch
Code: Alles auswählen
from itertools import product
from operator import add
map(add, *zip(*product(range(10), range(10))))
EDIT:

sum() ist sicherlich eleganter
Re: verschachtelte Schleife kompremieren
Verfasst: Montag 1. November 2010, 14:56
von /me
Xynon1 hat geschrieben:Code: Alles auswählen
for x in range(10):
for y in range(10):
x + y
#kann man das irgendwie in eine solche Form bringen ?
[x + y for x,y in range(10), range(10)]
Das erste Beispiel liefert als Ergebnis im Prinzip ja nun gar nichts, aber anscheinend möchtest du als Ergebnis eine Liste mit der Addition der Werte haben.
Du könntest natürlich auch einen Generator erstellen
Code: Alles auswählen
>>> func = (x+y for x in range(10) for y in range(10))
>>> func.next()
0
>>> func.next()
1
>>>for i in func:
>>> print i
2
3
4
5
6
[...]
Re: verschachtelte Schleife kompremieren
Verfasst: Montag 1. November 2010, 15:03
von Xynon1
@Hyperion
Ja, das ist mir bekannt, trotzdem Danke
@DasIch
Mir gings zwar um kompremieren, aber das ist etwas übertrieben
bzw sum() nützt mir ja nichts
@/me
genau das meinte ich
man stand ich auf dem Schlauch, bin dreimal dran vorbei
war bei [x+y for x in range(10), for y in range(10)] am Ende angekommen
Edit: Nochmal damit ich das klar gestellt habe, wie ich im Threadnamen geschrieben habe, ging es mir um die möglickeit die Listen kompremiert zu verschachteln, die Rechenoperation ist mir ziemlich egal
Re: verschachtelte Schleife kompremieren
Verfasst: Montag 1. November 2010, 15:10
von /me
Xynon1 hat geschrieben:[...] ging es mir um die möglickeit die Listen kompremiert zu verschachteln [...]
Spelling Hint für bessere Suchergebnisse via Google: Kompr
ession vs. kompr
imiert.
Re: verschachtelte Schleife kompremieren
Verfasst: Montag 1. November 2010, 15:11
von Xynon1
Oha

, danke!