如何在 Python 中迭代巢狀列表?


在本文中,我們將瞭解 Python 中巢狀列表的概念以及如何在 Python 語言中迭代巢狀列表。有時,任務是遍歷列表的每個元素,或者在列表中查詢元素,或者使用列表中給出的資訊。在所有這些情況下,都必須遍歷列表。列表可以由單一型別的元素組成,也可以在列表中使用多種型別的元素。將使用三個不同的示例來表示遍歷列表的不同方法。

巢狀列表示例 -

一個包含不同專案型別的巢狀列表。

nestedList1 =[["Meena", 30, ["Lucknow", "UP"]], ["Arun", 40, ["Rampur", "UP"]], ["Hina", 35, ["Rohini", "Delhi"]],["Aman", 45, ["Govindpuri", "Delhi"]]]

一個三維列表 -

nestedList2 = [
   [
      ['a', 'b'],
      ['c', 'd']
   ],[
      ['e', 'f'],
      ['g', 'h']
   ]
]

示例 1:使用元素的索引值在 Python 中迭代巢狀列表

演算法

  • 步驟 1 - 首先指定要使用的巢狀列表。巢狀列表是一個列表,其元素也是列表。

  • 步驟 2 - 使用一個顯示不同型別元素的列表,例如:在本例中使用以下列表 -

nestedList1 =[["Meena", 30, ["Lucknow", "UP"]], ["Arun", 40, ["Rampur", "UP"]], ["Hina", 35, ["Rohini", "Delhi"]],["Aman", 45, ["Govindpuri", "Delhi"]]]
  • 步驟 3 - 首先列印指定的巢狀列表。

  • 步驟 4 - 要遍歷此列表,請使用索引值,例如 item[0] 或 item[2][0]

  • 步驟 5 - 根據需要以不同的方式使用提取的資訊。

示例

nestedList1 =[["Meena", 30, ["Lucknow", "UP"]], ["Arun", 40, ["Rampur", "UP"]], ["Hina", 35, ["Rohini", "Delhi"]],["Aman", 45, ["Govindpuri", "Delhi"]]]
print("Printing the nested array: ")
print("\n", nestedList1, "\n")
print("Printing the information fetched from the nested array: \n")
for item in nestedList1:
print(item[0], "is", item[1],"years old", "and lives in", item[2][0], ",",item[2][1]) 

輸出

在命令視窗中執行 Python 檔案

開啟 cmd 視窗。首先,我們將列印給定的列表。然後列印各個專案。

示例 2:使用 Isinstance() 在 Python 中迭代巢狀列表以檢查專案是否為列表

演算法

  • 步驟 1 - 首先指定要使用的巢狀列表。巢狀列表是一個列表,其元素也是列表。

  • 步驟 2 - 使用一個顯示不同型別元素的列表,例如:在本例中使用以下列表 -

nestedList1 =[["Meena", 30, ["Lucknow", "UP"]], ["Arun", 40, ["Rampur", "UP"]], ["Hina", 35, ["Rohini", "Delhi"]],["Aman", 45, ["Govindpuri", "Delhi"]]]
  • 步驟 3 - 首先列印指定的巢狀列表。

  • 步驟 4 - 要遍歷此列表,請使用 for 迴圈檢查每個專案一次。

  • 步驟 5 - 使用 isinstance() 函式查詢給定專案是否為列表。如果是列表,則遍歷該內部列表。

示例

nestedList1 =[["Meena", 30, ["Lucknow", "UP"]], ["Arun", 40, ["Rampur", "UP"]], ["Hina", 35, ["Rohini", "Delhi"]],["Aman", 45, ["Govindpuri", "Delhi"]]]
print("Printing the nested array: ")
print("", nestedList1, "\n")

for list1 in nestedList1:
   print("\nPrinting the person's record fetched from the nested array: \n")
   for l in list1:
      isitalist=isinstance(l, list)
      if (isitalist==True):
         for x in range(0, len(l)):
            print(l[x])
      else:
         print(l) 

輸出

在命令視窗中執行 Python 檔案 -

開啟 cmd 視窗。首先,我們將列印給定的列表。然後列印各個專案。

示例 3:使用巢狀“for”迴圈在 Python 中迭代巢狀列表

演算法

  • 步驟 1 - 首先指定要使用的巢狀列表。巢狀列表是一個列表,其元素也是列表。

  • 步驟 2 - 使用類似於三維陣列的列表,例如 -

在本例中使用以下列表 -

nestedList2 = [
   [
      ['a', 'b'],
      ['c', 'd']
   ],[
      ['e', 'f'],
      ['g', 'h']
   ]
] 
  • 步驟 3 - 首先列印指定的巢狀列表。

  • 步驟 4 - 現在使用 for 迴圈迭代第一級列表。在第一個迴圈中新增第二個“for”迴圈以迭代第二級列表。即第一個列表內的列表。

  • 步驟 5 - 在第一個迴圈內新增下一個迴圈以迭代第二級列表。即第一個列表內的列表。

  • 步驟 6 - 現在在其中使用另一個 for 迴圈迭代最內層巢狀列表的元素。在不同的行中列印所有元素。

示例

nestedList2 = [ [   ['a', 'b'],   ['c', 'd']  ],  [   ['e', 'f'],   ['g', 'h']]]
# print the given list
print(nestedList2)
#the first loop
for s in range(len(nestedList2)) : 
#second loop
   for t in range(len(nestedList2[s])) : 
#third loop
      for u in range(len(nestedList2[s][t])) : 
         print(nestedList2[s][t][u],"\n") 

輸出

在命令視窗中執行 python 檔案 -

開啟 cmd 視窗。首先,我們將列印三維列表。然後列印各個專案。

在這篇 Python 文章中,透過三個不同的示例,給出了展示如何迭代巢狀列表的方法。第一種方法使用專案索引值進行迭代,並展示了在使用提取的資訊時如何格式化輸出。在第二個示例中,使用 isinstance() 函式查詢給定專案是否為列表,然後進一步遍歷它。最後一個示例使用巢狀的“for”迴圈迭代三維巢狀列表中的專案。

更新於: 2023年5月4日

5K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告