Skip to main content
 首页 » 编程设计

python之如何从理解中排除案例

2025年05月04日1452php

我试图排除返回 None 的理解案例。 以下实现了它,但导致调用该函数两次!!!

>>> def func(x): 
...     if x>10: 
...         return None 
...     else: 
...         return x*2 
...          
>>> result1=[func(x) for x in l if func(x) is not None] 
>>> result1 
[4, 8, 14, 6] 

出路在哪里?

请您参考如下方法:

result1[:] = [x for x in map(func, l) if x is not None] 

在 Python 2.x 上使用 itertools.imap

注意:filter(None, map(func, l)) 通常可以工作,但也会删除 0(因为它是被认为是空的)