我有一个简单的列表。条件清单理解
>>> a = [0, 1, 2]
我想用列表理解来制作一个新列表。
>>> b = [x*2 for x in a]
>>> b
[0, 2, 4]
很简单,但如果我只想操作非零元素呢?
'如果'在列表解析中需要'其他',所以我想出了这个。
>>> b = [x*2 if x != 0 else None for x in a]
>>> b
[None, 2, 4]
但理想的结果是。
>>> b
[2, 4]
我能做到这一点这样
>>> a = [0, 1, 2]
>>> def f(arg):
... for x in arg:
... if x != 0:
... yield x*2
...
>>> list(f(a))
[2, 4]
或使用“过滤器”和拉姆达
>>> a = [0, 1, 2]
>>> list(filter(lambda x: x != 0, a))
[1, 2]
如何使用列表理解我得到这样的结果?
你是我的英雄。 =) – selurvedu