python列表迴圈的疑惑,Python中for迴圈的疑惑?

2022-03-08 07:51:21 字數 1876 閱讀 6305

1樓:

看來兄弟是混淆了while和for ,for在python中的定義是遍歷列表的

也就是第一次他是以索引1在操作,第二次它就會以索引2在操作,即使你pop了索引0列表改變了,它依舊會以第二個在操作,你把你的**加一段就可以知道了

l=[1,2,3,4,5,6,7]

l1=l[:]

for i in l1:

print'i=',i

print "is i == l1(0)?" ,(i is l1[0])

print "\t\tvalue of l1.pop(0):%d" % l1.pop(0)

print '\t\tnew list of l1:',l1

print "\t\t\t\tlenth:%d" %len(l1)

你看的到結果中print的i值是以1,3,5,7跳躍的。因為第二次的迴圈中for給予i的索引是了l1[1]

但是你已經pop掉了0了。這是錯誤的原因。

樓下的兄弟給了正解,你他以不變列l的長度建立新列來進行遍歷,但是有個bug,當你的

l=[1,2,3,4,5,6,7]時候range(0,len(l))是和l列一樣,但是當l=[2,3,4,5,6,7,8]的適合這個方法就不對了

直接改成

l=[1,2,3,4,5,6,7]

l1=l[:]

for i in l:

print i

print "is l[i-1] == l1(0)?" ,(l[i-1] is l1[0])

print "\t\tvalue of l1.pop(0):%d" % l1.pop(0)

print '\t\tnew list of l1:',l1

print "\t\t\t\tlenth:%d" %len(l1)

這樣就完美了

2樓:少廢話合不合格

l=[1,2,3,4,5,6,7]

l1=l[:]

for i in l1: # 改成 for i in range(0,len(l)):

print "is i == l1(0)?" ,(i is l1[0]) #改成print "is l[i] == l1(0)?" ,(l[i] is l1[0])

print "\t\tvalue of l1.pop(0):%d" % l1.pop(0)

print '\t\tnew list of l1:',l1

print "\t\t\t\tlenth:%d" %len(l1)

原因是呼叫pop(0)以後,i 移動了2次,就是說,第一次i=1,第2次i=3,第三次i=5, 第四次i=7,然後就出現了你上面的結果。具體為什麼移動了2次,我也不清楚。

剛意識到的:pop(0)以後,l1列表更新了,不是i移動了2次。相同的索引號在不同的列表中得到的值是不一樣的,所以第一次i=1,第2次i=3,第三次i=5, 第四次i=7

3樓:

l=[1,2,3,4,5,6,7]

l1=l[:]

for i in range( len( l1 ) ):

print "is i == l1(0)?" ,( not i )print "\t\tvalue of l1.pop(0):%d" % l1.pop(0)

print '\t\tnew list of l1:',l1print "\t\t\t\tlenth:%d" %len(l1)

python中for迴圈的疑惑?

4樓:匿名使用者

這個沒有問題呀

a 列表有兩個元素[1,3,5] 和 3 用for遍歷a 所以得到這兩個值呀

你要想把裡面的列表也列舉出來,就還要再加一層for

python for迴圈的問題,python中兩個for迴圈的問題

else沒執行到是因為for b in list1使得b不再是150,而是list1中的每個值,自然不會執行else了。你的python程式我幫你改完了,你看看吧.改動的地方見註釋 continue的作用就是使迴圈中滿足條件的 跳過,繼續執行下一輪 你的 continue應該是屬於else,所以el...

用python的哪個版本比較好,新手學Python用哪個版本好

新手開始總糾結學 python2 還是 python3,這種糾結完全就是給自己徒增煩惱,因為它們是同一種語言,只有少部分地方語法不相容,儘管目前大部分公司還在用python2,但是python3逐漸成為主流已是不爭事實,畢竟後者效能方面更佔有優勢。2.7 或者 3.5 據說 明年 可能都轉 3.5 ...

自學python的學習路線是什麼?一些python學習資

我要程式設計 零元教你學習 python培訓學習路線都是基於培訓內容制定的,優就業的python課程針對零基礎學生開設,所以學習路線設定也是由淺入深,循序漸進。首先學習python語言基礎 linux mysql,這部分內容是初級python工程師需要掌握的 其次學習python web程式設計基礎...