Ich habe eine einfache Liste.List Verständnis mit der Bedingung
>>> a = [0, 1, 2]
Ich möchte eine neue Liste daraus mit einem Listenverständnis machen.
>>> b = [x*2 for x in a]
>>> b
[0, 2, 4]
Ziemlich einfach, aber was, wenn ich nur über Nicht-Null-Elemente arbeiten möchte?
'if' braucht 'else' in der Liste Comprehensions, so kam ich mit diesem.
>>> b = [x*2 if x != 0 else None for x in a]
>>> b
[None, 2, 4]
Aber das wünschenswerte Ergebnis ist.
>>> b
[2, 4]
Ich kann tun, dass diese Art und Weise
>>> a = [0, 1, 2]
>>> def f(arg):
... for x in arg:
... if x != 0:
... yield x*2
...
>>> list(f(a))
[2, 4]
oder mit 'Filter' und eine Lambda-
>>> a = [0, 1, 2]
>>> list(filter(lambda x: x != 0, a))
[1, 2]
Wie kann ich dieses Ergebnis erhalten Sie eine Liste Verständnis mit?
Du bist mein Held. =) – selurvedu