首页 > 解决方案 > 如何遍历列表列表,找到相同索引位置的值?

问题描述

我有一个列表列表,其中包含有关智能手机应用程序的信息。每个列表(在列表中)包含相同类型的信息,顺序相同。 [id, name, ..., ].

列表列表如下所示:[[id1, name1,...], [id2, name2, ...]]

我想访问每个列表中的第 10 个索引并检查它的值。

我试过这个,但它不起作用。我想这将遍历每个列表,除了第一个是标题,并会选择每个列表中的第 10 个项目。

for c_rating in apps_data[1:][10]:
    print(c_rating)

相反,它会打印出第 10 个列表中的每个项目。

给定的解决方案是:

for row in apps_data[1:]:
    c_rating = row[10]
    print(c_rating)

我理解为什么这段代码有效。它将过程分为两个步骤。我不明白为什么第一个代码不起作用。任何帮助,将不胜感激。

标签: pythonlistnested

解决方案


这是由于 python 表达式评估顺序。 apps_data[1:][10]按以下顺序评估:

  • apps_data[1:]-> 这给出了除了第一个内部列表之外的所有内部列表的列表。让我们称之为inner_lists

  • inner_lists[10]-> 这为您提供了该列表列表中的第 10 个元素。这为您提供了这些内部列表之一。

所以你最终得到一个选择+选择

你想要的是一个迭代+选择。你可以这样做:

[print(x[10]) for x in apps_data]

这会遍历所有的 inner_lists,从每个元素中选择第 10 个元素并打印它。


推荐阅读