Pythonic方式确定非空列表条目是否“连续”。

9 浏览
0 Comments

Pythonic方式确定非空列表条目是否“连续”。

我正在寻找一种简便的方法来确定列表中所有非None项是否出现在一个连续的片段中。我将以整数作为非None项的示例。

例如,列表[None, None, 1, 2, 3, None, None]满足我的要求,因为它们是连续的整数项。相比之下,[1, 2, None, None, 3, None]不连续,因为整数之间有None项。

以下是一些更多的例子,以尽可能清晰明了的方式呈现。

连续:

[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 - 这最终导致了一个高度嵌套且非常难以跟踪的一系列if / else语句嵌套在一个循环中。 (除了丑陋之外,我承认我还没有在每个情况下使其正常工作)。

有人知道更简便的方法来确定列表中的非None项是否出现在一个连续的片段中吗?

0