python - 循环遍历二维数组 Python
问题描述
我对某些事情有点困惑,当我想出这段代码时,我正在循环一个二维数组,只是在试验:
result = [["Lucas","5"],["Tim","2"]]
count = 0
for line in result:
for item in result[count]:
print(item)
count = count + 1
我认为这会做的是给我一个结果,Lucas
然后2
,因为它会转到第一项,然后第二个for
循环将通过子列表打印result[0][0]
,但是一旦它到达子列表的第一项,它会将计数增加到 1,这意味着它将result[1][1]
在下一个打印,因为它在一个新的范围内,但是循环随后将转到它所在范围的第二项。
但是,这将给出 'Lucas','5' 作为输出。我想当我改变计数时,我认为我正在改变它循环的范围。
请向我解释为什么我错了
提前感谢您,并很抱歉没有很好地解释这一点。
解决方案
当你这样做
for item in result[count]:
该表达式result[count]
仅在循环开始时计算一次。每次循环都不会对其进行评估,因此重新分配count
对后续迭代没有影响。它大致相当于:
temp = result[count]
for item in temp:
请记住,您循环使用的值for
可能是生成器表达式。这些不能被索引,它们只是计算一系列值。因此,每次都重新评估它们是没有意义的。
推荐阅读
- javascript - 查找更改 HTML 标记内容的脚本
- c++ - (c++) stl 向量实现
- javascript - React Redux - 将参数传递给事件处理程序不起作用
- python - 从另一个类 PYTHON 调用类方法
- python - 计算熊猫中的重复序列
- react-native - undefined 不是一个对象(评估'component.router.getStateForAction')
- java - 如何将 CSV 文件中的数据输入到我的代码中?
- javascript - 如何在 ASP .Net (Aspx) 中创建要从 Javascript 访问的 Web 服务方法?
- python - 是否存在无法在 python 中强制转换为字符串的对象?
- java - 如何从输入 json 数组中获取逗号分隔的用户 ID 和联系人公司 ID