作者Sharon226 (流浪)
看板Python
標題[問題] 如何得知list index
時間Wed Jul 16 16:40:17 2014
請問, 在做 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
→ alibuda174:直接用alist.index('case3')找出索引值 可以嗎? 07/16 17:55
→ mikapauli:有一定要知道index嗎? 07/16 18:19
→ mikapauli:沒有的話,可以讓兩個loop共用一個iterator 07/16 18:21
→ mikapauli:aiter = iter(alist) 07/16 18:21
→ mikapauli:for n in aiter: 07/16 18:21
→ mikapauli: A(n) 07/16 18:22
→ mikapauli: if n == 'case3': 07/16 18:22
→ mikapauli: break 07/16 18:22
→ mikapauli:for n in aiter: 07/16 18:23
→ mikapauli: B(n) 07/16 18:23
推 ck574b027:如果做的事情可以分成 A, B 兩個函數,那 break 可以換 07/16 18:52
→ ck574b027:成 fn = B,做事都用fn(n),這樣只需要一個 for 07/16 18:54