[问题] 如何得知list index

楼主: Sharon226 (流浪)   2014-07-16 16:40:17
请问, 在做 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
作者: alibuda174 (阿哩不达)   2014-07-16 17:55:00
直接用alist.index('case3')找出索引值 可以吗?
作者: mikapauli (桜花)   2014-07-16 18:19:00
有一定要知道index吗?没有的话,可以让两个loop共用一个iteratoraiter = iter(alist)for n in aiter:A(n)if n == 'case3':breakfor n in aiter:B(n)
作者: ck574b027 (荒围!定厝!贼!妹!)   2014-07-16 18:52:00
如果做的事情可以分成 A, B 两个函数,那 break 可以换成 fn = B,做事都用fn(n),这样只需要一个 for

Links booklink

Contact Us: admin [ a t ] ucptt.com