[問題] 如何得知list index

看板Python作者 (流浪)時間11年前 (2014/07/16 16:40), 編輯推噓1(1011)
留言12則, 3人參與, 最新討論串1/4 (看更多)
請問, 在做 for loop 時 假設有一個 list 如下 alist = ['case1', 'case1', 'case2', 'case3', 'case3', ...] 我希望在遇到 case3 後, 抓剩下的 element 做別的事 for n in alist // 抓 alist[n] do A if n == 'case3' break; 我要怎麼抓到 break 時的 index 是 3? 而且要怎麼繼續抓 alist 剩餘的 element? 目前寫法如下, 是另設一個index 但總覺得應該有更好的方法, 還請大家幫忙回答, 謝謝!! length = len(alist) for n in range(length): // 抓 alist[n] do A if alist[n] == 'case3': break for n in range(n+1, length): // 抓 alist[n] do B -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.216.67 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1405500019.A.324.html

07/16 17:55, , 1F
直接用alist.index('case3')找出索引值 可以嗎?
07/16 17:55, 1F

07/16 18:19, , 2F
有一定要知道index嗎?
07/16 18:19, 2F

07/16 18:21, , 3F
沒有的話,可以讓兩個loop共用一個iterator
07/16 18:21, 3F

07/16 18:21, , 4F
aiter = iter(alist)
07/16 18:21, 4F

07/16 18:21, , 5F
for n in aiter:
07/16 18:21, 5F

07/16 18:22, , 6F
A(n)
07/16 18:22, 6F

07/16 18:22, , 7F
if n == 'case3':
07/16 18:22, 7F

07/16 18:22, , 8F
break
07/16 18:22, 8F

07/16 18:23, , 9F
for n in aiter:
07/16 18:23, 9F

07/16 18:23, , 10F
B(n)
07/16 18:23, 10F

07/16 18:52, , 11F
如果做的事情可以分成 A, B 兩個函數,那 break 可以換
07/16 18:52, 11F

07/16 18:54, , 12F
成 fn = B,做事都用fn(n),這樣只需要一個 for
07/16 18:54, 12F
文章代碼(AID): #1JnZfpCa (Python)
文章代碼(AID): #1JnZfpCa (Python)