对于具有更多编程经验的人来说,这是一个非常简短且可能很容易回答的问题。如果满足某个条件,我想把我的计数器加1。我在xrange()
循环中使用for
。我可以手动增加i
还是必须由自己的计数器构建?
for i in xrange(1,len(sub_meta),2):
if sub_meta[i][1] < sub_meta[i-1][1]:
dict_meta[sub_meta[i-1][0]]= sub_meta[i][0]
elif sub_meta[i][1] == sub_meta[i-1][1]:
dict_meta[sub_meta[i-1][0]]= ''
i += 1
答案 0 :(得分:4)
i = 1
while i < len(sub_meta):
if sub_meta[i][1] < sub_meta[i-1][1]:
dict_meta[sub_meta[i-1][0]]= sub_meta[i][0]
elif sub_meta[i][1] == sub_meta[i-1][1]:
dict_meta[sub_meta[i-1][0]]= ''
i += 1
i += 2
答案 1 :(得分:1)
如果你打算经常这样做,这里有一个利用生成器send()
方法的实现:
def changeable_range(start, stop=None, step=1):
if stop is None: start, stop = 0, start
while True:
for i in xrange(start, stop, step):
inc = yield i
if inc is not None:
start, stop = i, stop + inc
break
else:
raise StopIteration
用法:
>>> myRange = changeable_range(3)
>>> for i in myRange: print i
...
0
1
2
>>> myRange = changeable_range(3)
>>> for i in myRange:
... print i
... if i == 2: junk = myRange.send(2) #increment the range by 2
...
0
1
2
3
4