Skip to main content
 首页 » 编程设计

python之如何以 "pythonic"方式编写 for 循环

2025年05月04日14zdz8207

我想知道是否有一种“python-ic”方式来编写以下带有 if 语句的嵌套 forloop:

nonelist = [] 
 
for i in testlist: 
    for e in i: 
        if e == None: 
            nonelist.append(i) 

请您参考如下方法:

您可以使用 itertools.chain 生成一个平面迭代器,并从那里检查项目是否为 None:

[i for i in itertools.chain.from_iterable(testlist) if i is None] 

示例:

In [389]: testlist = [[1, 2, 3, None], [4, 5, None, None]]                                                                                                                                                   
 
In [390]: [i for i in itertools.chain.from_iterable(testlist) if i is None]                                                                                                                                  
Out[390]: [None, None, None] 

FWIW None 是单例,所以你应该对它们使用身份(is)测试而不是等式测试(==)。