我對某些事情有點困惑,當我想出這段代碼時,我正在循環一個二維數組,只是在試驗:result = [["Lucas","5"],["Tim","2"]]count = 0for 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' 作為輸出。我想當我改變計數時,我認為我正在改變它循環的范圍。請向我解釋為什么我錯了提前感謝您,并很抱歉沒有很好地解釋這一點。
3 回答
一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
當你這樣做
for item in result[count]:
該表達式result[count]僅在循環開始時計算一次。每次循環都不會對其進行評估,因此重新分配count對后續迭代沒有影響。它大致相當于:
temp = result[count] for item in temp:
請記住,您循環使用的值for可能是生成器表達式。這些不能被索引,它們只是計算一系列值。因此,每次都重新評估它們是沒有意義的。
絕地無雙
TA貢獻1946條經驗 獲得超4個贊
for line in result:
將循環遍歷頂層數組,因此這里有 2 條記錄:["Lucas","5"]然后["Tim","2"]:
for item in result[count]:
將循環遍歷 2 條記錄中的每條記錄的每個項目,所以
print(item)
將按順序顯示 4 個項目Lucas, 5, Tim, 2。
不需要計數,它在這里沒有任何用途,并且無論如何都不被任何一個 for 循環使用。
猛跑小豬
TA貢獻1858條經驗 獲得超8個贊
如果你堅持使用 for 循環,你也可以使用
result = [["Lucas","5"],["Tim","2"]]
count = 0
for line in range(len(result)):
for item in result[line]:
print(item)
count = count + 1
返回:盧卡斯 5 蒂姆 2
- 3 回答
- 0 關注
- 564 瀏覽
添加回答
舉報
0/150
提交
取消
