亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不是說迭代取出的是元素本身嗎?為什么打印出來沒變化?哪位老師或大神給解釋下,謝謝。

#不是說迭代取出的是元素本身嗎?為什么打印出來沒變化?哪位老師或大神給解釋下,謝謝。
L?=?[0,?1,?2,?3,?4]
for?t?in?L:
????print?t?is?L[t]????
????t+=1????
????print?t
print?L
print?t

輸出:

True
1
True
2
True
3
True
4
True
5
[0,?1,?2,?3,?4]
5

打印的 t is L[t] 也是true, ?既然t就是L[t] ?但 結果 L 為啥沒變化?



如下,L 是有變化的。

for t in L:

? ? L[t]+=1

? ? print t

print L

結果:

[1,?2,?3,?4,?5]




正在回答

4 回答

在 for 循環中,索引是從 0 開始直到數組或者集合結束,而循環中的 t 表示從第一個開始取的 L 中的值。

索引開始為 0,對應 L 中的值為 L[0] = 0,?

此時的 t 為 L 中的第一個元素,也是 0,

所以輸出的 t is L[t], ( 0 is L[0] ) 是 true


樓主給出的代碼:

print t is L[t];? #pirnt true

t += 1;? #t = 1, 2, 3, 4, 5

先后順利需要理清楚,只改變了 t 的值,而沒有改變 L[t] 的值。

當開始第二次循環時, t 又重新取得了 L 中的下一個元素,t += 1; 這一句也就沒有什么意義了

希望我說的明白了

0 回復 有任何疑惑可以回復我~
#1

Sapce

我的理解是 t 是通過 for 循環的索引獲得的值,只是一個變量,而不是指針指向了 L 中的某一個地址。所以 t 的變化與 L 中的元素值無關 對于樓主的第二段代碼: for t in L: L[t] += 1; #確確實實是改變了對應的 L 中元素值,且每個值 + 1 print t; #樓主可以在這輸出 print L 試一試,輸出結果應該是 [1, 1, 2, 3, 4], [1, 2, 2, 3, 4], [1, 2, 3, 3, 4], [1, 2, 3, 4, 4], [1, 2, 3, 4, 5] print L; 以上結果已經過驗證
2019-08-15 回復 有任何疑惑可以回復我~

https://img1.sycdn.imooc.com//5d4ec4a90001bcb509060287.jpg你本來沒有對L有操作過啊,為什么要L有變化?

0 回復 有任何疑惑可以回復我~
#1

北方的郎n_n 提問者

迭代里寫了,t is L[t] ,是true. 說明t 指向的 L[t] 的內存。按理說,改變 t 就 是 改變 L[t], 我第二段代碼 改變 L[t] 對 L 是有影響的。 但是改變 t 是沒影響的,為什么?說的夠清楚了嗎
2019-08-13 回復 有任何疑惑可以回復我~

https://img1.sycdn.imooc.com//5d4be7aa000166fb04230242.jpg

這句話是本身是啥意思。

0 回復 有任何疑惑可以回復我~

怎么可能是本身呢,L[]才是本身呢

0 回復 有任何疑惑可以回復我~
#1

北方的郎n_n 提問者

你看課程開始說的。下面我有截圖。
2019-08-08 回復 有任何疑惑可以回復我~
#2

北方的郎n_n 提問者

t is L[t] 還是ture 呢??
2019-08-08 回復 有任何疑惑可以回復我~
#3

慕粉3863614 回復 北方的郎n_n 提問者

怎么說呢..確實不是索引,應該是類似于指針的東西吧
2019-08-09 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758397    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

不是說迭代取出的是元素本身嗎?為什么打印出來沒變化?哪位老師或大神給解釋下,謝謝。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號