我想知道是否有一种“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)测试而不是等式测试(==)。
