如何在 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”迴圈迭代三維巢狀列表中的專案。