checking next element in for loop
假设我有这个数组:
1 | arr = ["foo","bar","hey"] |
我可以用这段代码打印
1 2 3 | for word in arr: if word =="foo": print word |
但我想检查下一个
如何检查for循环中的下一个元素?
1 2 3 4 5 6 | for i in range(len(arr)): if arr[i] =="foo": if arr[i+1] == 'bar': print arr[i] + arr[i+1] else: print arr[i] |
列表中的项目可以通过其索引引用。 使用
1 2 3 4 5 | arr = ["foo","bar","hey"] for i, word in enumerate(arr): if word =="foo" and arr[i+1] == 'bar': print word |
但是,当您到达列表末尾时,您将遇到需要处理的
您也可以使用zip:
1 2 3 | for cur, next in zip(arr, arr[1:]): if nxt=='bar': print cur+nxt |
但请记住,迭代次数只有两次,因为
而不是检查下一个值,跟踪前一个:
1 2 3 4 5 6 7 | last = None for word in arr: if word =="foo": print word if last == 'foo' and word == 'bar': print 'foobar' last = word |
跟踪你已经过去的东西比偷看更容易。