我正在寻找一种方法来轻松确定列表中所有非 None 项目是否出现在单个连续切片中。我将使用整数作为非 None 项目的示例。
例如,列表[None, None, 1, 2, 3, None, None]
满足我对连续整数条目的要求。相比之下,[1, 2, None, None, 3, None]
is not连续,因为整数之间没有任何条目。
更多的例子可以让这一点尽可能清楚。
连续的:
[1, 2, 3, None, None]
[None, None, 1, 2, 3]
[None, 1, 2, 3, None]
不连续:
[None, 1, None, 2, None, 3]
[None, None, 1, None, 2, 3]
[1, 2, None, 3, None, None]
我的第一个方法是使用变量来跟踪我们是否遇到过None
然而,无论我们是否遇到过int
然而——这最终会导致嵌入在 for 循环中的一系列高度嵌套且非常难以遵循的 if/else 语句。 (除了丑陋之外,我承认我并没有让它在所有情况下都起作用)。
任何人都知道一种更简单的方法来确定列表中的非 None 项目是否出现在单个连续切片中?