Seite 1 von 1

List comprehension else?

Verfasst: Freitag 19. März 2010, 21:57
von Holgi22
hallo

sind else anweisungen in list comprehensions nicht möglich in der art,

Code: Alles auswählen

foo = [i for i in list if i > list[i] else i**2]
?????


gibt das da ein trick? :lol:

Re: List comprehension else?

Verfasst: Freitag 19. März 2010, 22:00
von Defnull

Code: Alles auswählen

foo = [i if i > list[i] else i**2 for i in list]

Verfasst: Freitag 19. März 2010, 22:01
von Holgi22
ahhh...coole sache :D python ist herrlich

Verfasst: Freitag 19. März 2010, 23:01
von snafu
Ich fänd `while` in LCs toll.

Verfasst: Freitag 19. März 2010, 23:18
von gkuhl
@snafu: Um was damit zu tun...?

Verfasst: Freitag 19. März 2010, 23:20
von derdon
snafu hat geschrieben:Ich fänd `while` in LCs toll.
Ich fänd `break` in if-Blöcken toll.

Verfasst: Samstag 20. März 2010, 07:31
von BlackJack
@gkuhl: Also die Semantik von ``[f(x) for x in xs while x < 42]`` wäre IMHO syntaktischer Zucker für eine Kombination aus `itertools.takewhile()` und `map()`.

Verfasst: Samstag 20. März 2010, 09:56
von Leonidas
derdon hat geschrieben:Ich fänd `break` in if-Blöcken toll.
Ich fänd Exception-Handling in LCs toll.

*jk*