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.