递增键,值对在for循环迭代字典

时间:2015-10-03 09:17:03

标签: python python-2.7

如何在python中迭代字典时在for循环中增加键值对?

for key,value in mydict.iteritems(): 
    if condition:
        #inc key,value
    #something to do

我尝试使用next(mydict.iteritems())mydict.iteritems().next(),但徒劳无功。

我正在使用python2.7。

编辑 - 我知道forloop会自动增加键值对。我想手动增加到下一对(因此导致2个增量)。 此外,我无法继续使用,因为我希望两个键值对可以同时访问。因此,当我递增时,我有当前的键值对以及下一个。如果我继续使用,我将失去对当前的访问权限并且只获得下一个键值对。

3 个答案:

答案 0 :(得分:1)

如果您需要同时访问两个键值对,请使用itertools recipes中的成对。

from itertools import izip, tee

def pairwise(iterable):
    "s -> (s0,s1), (s1,s2), (s2, s3), ..."
    a, b = tee(iterable)
    next(b, None)
    return izip(a, b)

答案 1 :(得分:1)

你的意思是这样吗?

mydict = {'a': 1, 'b': 2, 'c': 3}

items = mydict.iteritems()
for key,value in items:
    if key == 'b':  # some condition
        try:
            key,value = next(items)
        except StopIteration:
            break
    print(key, value)

输出:

('a', 1)
('c', 3)

答案 2 :(得分:0)

您无需触摸keyvalue

skip = False
for key, value in mydict.iteritems(): 
    skip = not skip
    if skip:
        continue
    # something to do

如果您需要上一步中的key / value,请将其存储:

skip = False
prev_item = None
for key, value in mydict.iteritems(): 
    skip = not skip
    if skip:
        prev_item = key, value
        continue
    # something to do. can access prev_item.