【发布时间】:2021-12-25 23:49:06
【问题描述】:
我有一个二维数组,我试图在其中迭代并打印每个元素。 Python 中的 for 循环很烦人/令人困惑,因为您没有 C++ 中那样的可表达性,无法设置条件/增量。
无论如何,当我尝试打印出这个数组的内容时,它会打印出数组的内容 3 次而不是一次。
twoDarray = [[10, 15, 20], [25, 30, 35], [45, 50, 60]]
for i in twoDarray:
for num in twoDarray:
print(num)
为什么我的嵌套 for 循环没有按预期工作?
【问题讨论】:
-
您在内部循环中再次循环整个数组,而不是循环遍历行。
-
试试
for num in twoDarray:-->for num in i: -
但是python中的循环变量没有任何意义,对吧?我可以随心所欲地调用这两个循环变量。在 c++ 中,您必须像
int i =0和int j=0一样定义它们。为什么我调用第二个 for 循环变量num有什么关系?还有一个大问题:为什么我要使用num变量并使用它来遍历i?我很困惑 -
用你自己的话说:当你做
for i in twoDarray:时,你认为i第一次通过循环的值是多少?第二次?第三?为什么?当您尝试使用调试器或print语句来测试它时,它是否按预期工作?你在哪里有for num in twoDarray:,同样的问题。现在:第一次通过内循环时,num的值应该是多少?你期望这个价值来自哪里?因此,根据您对for循环工作原理的理解,您应该如何编写循环?特别是,in之后应该做什么? -
所以在内部循环中,您有一个名为
i的“小列表”,并且您想要访问i的各个元素。您编写for循环的方式与编写任何其他for循环的方式相同:通过决定为各个元素使用的名称(您之前选择了num;让我们坚持下去)在左侧,指定元素从哪里来。因此:for num in i:.
标签: python