Python - 非无元素索引

pythonserver side programmingprogramming

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

理解问题

在给定的问题中,我们必须在给定的输入列表中找到非无项的索引。这个问题有助于从列表中过滤掉无值,或者每当我们想要对无项执行操作时。例如,我们将得到一个列表,如 [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 - 最后,我们将返回包含非 None 项索引的索引列表。

示例

# 定义函数以获取非 none 项索引
def get_index(items):
   index = []
   for i in range(len(items)):
      if items[i] is not None:
         index.append(i)
   return index
   
# 初始化包含 None 项的列表
the_list = [12, None, 54, None, 31, None, 42, None, 83]

# 调用函数
non_none_indices = get_index(the_list)
print("非 None 元素的索引:\n", non_none_indices)

输出

非 None 元素的索引:
[0, 2, 4, 6, 8]

复杂度

查找列表中非 None 项的索引的时间复杂度为 O(N),这里 N 是给定输入 the_list 的大小。因为我们已经遍历了给定列表一次以执行恒定时间操作。此代码的空间复杂度为 O(K),K 是"索引"列表中非 None 项的数量。

结论

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


相关文章