作者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://webptt.com/cn.aspx?n=bbs/Python/M.1405500019.A.324.html
1F:→ alibuda174:直接用alist.index('case3')找出索引值 可以吗? 07/16 17:55
2F:→ mikapauli:有一定要知道index吗? 07/16 18:19
3F:→ mikapauli:没有的话,可以让两个loop共用一个iterator 07/16 18:21
4F:→ mikapauli:aiter = iter(alist) 07/16 18:21
5F:→ mikapauli:for n in aiter: 07/16 18:21
6F:→ mikapauli: A(n) 07/16 18:22
7F:→ mikapauli: if n == 'case3': 07/16 18:22
8F:→ mikapauli: break 07/16 18:22
9F:→ mikapauli:for n in aiter: 07/16 18:23
10F:→ mikapauli: B(n) 07/16 18:23
11F:推 ck574b027:如果做的事情可以分成 A, B 两个函数,那 break 可以换 07/16 18:52
12F:→ ck574b027:成 fn = B,做事都用fn(n),这样只需要一个 for 07/16 18:54