如何在 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+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始
广告