使用.iteritems()在for循环中查找字典的下一项

use*_*577 1 dictionary iterator python-2.7

是否可以在for循环中获取下一个迭代

for x,y dict.iteritems()

我对x的下一项感兴趣,而没有向前移动迭代器。

在Python 2.7.x中

imo*_*lit 5

这或多或少是以下问题的重复:如何在循环时访问上一个/下一个元素?在Python中将列表成对循环(当前,下一个)

请注意,以下内容仅是第一个线程中最受好评的答案的改编,适合您的规范:

def iterate(iterable):
    iterator = iter(iterable)
    item = iterator.next()

    for next_item in iterator:
        yield item, next_item
        item = next_item

    yield item, None
Run Code Online (Sandbox Code Playgroud)

用法:

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

for item, next_item in iterate(d.iteritems()):
    print item, '| next:', next_item
Run Code Online (Sandbox Code Playgroud)

信贷由于马库斯Jarderot的解决方案。