Python - 非None元素索引


手头的问题是从给定的输入列表中获取非None元素的索引,并使用Python实现解决方案。有时我们需要在给定的数据集中查找空值或None值,因此这个问题将有助于解决这类问题。

理解问题

在给定的问题中,我们必须在给定的输入列表中找到非None项的索引。这个问题可以帮助过滤列表中的None值,或者在需要对None项执行操作时使用。例如,我们将得到一个类似于[1, None, 5, None, 8, 9]的列表,在这个列表中,在找到列表中的非None项后,我们将返回其在新列表中的索引,例如[0, 2, 4, 5]。

上述问题的逻辑

为了解决给定的问题并找到给定列表或数组中非None项的索引,我们将逐个遍历元素,并检查该值是否不等于None。如果找到None值,我们将将其索引保存在单独的数组中。迭代完成后,我们将拥有非None项的索引。

算法

  • 步骤1 - 第一步是定义名为get_index()的函数。在这个函数中,我们将传递项目列表作为输入。

  • 步骤2 - 然后初始化一个空列表或数组,例如index = []。此列表将用于存储非None项的索引。

  • 步骤3 - 接下来,在给定输入列表的项目值上启动一个循环。在循环内,我们将检查条件,如果该值不等于None。

  • 步骤4 - 如果迭代项不为None,则将索引值追加到我们在步骤2中创建的名为index的列表中。

  • 步骤5 - 最后,我们将返回index列表,其中包含非None项的索引。

示例

# Define the function to get the non-none items index
def get_index(items):
   index = []
   for i in range(len(items)):
      if items[i] is not None:
         index.append(i)
   return index
   
# Initialize the list with having None items
the_list = [12, None, 54, None, 31, None, 42, None, 83]

# Call the function
non_none_indices = get_index(the_list)
print("The indices of non-None elements:\n", non_none_indices)

输出

The indices of non-None elements:
 [0, 2, 4, 6, 8]

复杂度

在列表中查找非None项索引的时间复杂度为O(N),其中N是给定输入the_list的大小。因为我们只遍历给定列表一次来执行恒定时间操作。这段代码的空间复杂度为O(K),K是“index”列表中非None项的数量。

结论

代码成功显示了the_list中非None项的索引。这是在Python中使用列表或数组时的一个常见问题。因此,我们在这篇文章中学习了如何找到非None项的索引。

更新于:2023年10月17日

68 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.