python - 如何遍历列表列表,找到相同索引位置的值?
问题描述
我有一个列表列表,其中包含有关智能手机应用程序的信息。每个列表(在列表中)包含相同类型的信息,顺序相同。
[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)
我理解为什么这段代码有效。它将过程分为两个步骤。我不明白为什么第一个代码不起作用。任何帮助,将不胜感激。
解决方案
这是由于 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 个元素并打印它。
推荐阅读
- python - 网页抓取时找不到带有 JSON 信息的请求 URL
- sharepoint - SPFX - 扩展 - 无法将库文档转换为 pdf
- python-3.x - 如何在机器人框架报告中附加屏幕截图
- c - Redis 服务器及其 fork() - 何时调用 vm_enough_memory?
- bison - 解决 Yacc/Bison 语法中的 shift/reduce 冲突
- android - 如何触发框架布局的onsizechanged
- xamarin - 在矩形 xaml 中显示标题、文本内容
- aws-lambda - DyanamoDB 与 AWS Lambda 函数 Order by Desc Order with scan
- node.js - 连接到 Mongodb 的可变路由/url 参数
- android - 如何在 Android 中播放 Base 64 编码的音频