跳到Dictionary中的下一项

bha*_*arc 2 python dictionary python-2.7

当迭代字典时,我想跳过一个项目,如果它有一个特定的键.我试过类似的东西mydict.next(),但收到了错误信息'dict' object has no attribute 'next'

for key, value in mydict.iteritems():
    if key == 'skipthis':
        mydict.next()
    # for others do some complicated process
Run Code Online (Sandbox Code Playgroud)

如果重要的话,我正在使用Python 2.7.

ale*_*cxe 13

用途continue:

for key, value in mydict.iteritems():
    if key == 'skipthis':
        continue
Run Code Online (Sandbox Code Playgroud)

另见:


dwe*_*ner 5

我想你想调用mydict.iteritems().next(),但是你应该在迭代之前过滤列表.

要过滤列表,可以使用生成器表达式:

 r = ((k, v) for k, v in mydict.iteritems() if k != 'skipthis')
 for k,v in r:
      #do something complicated to filtered items
Run Code Online (Sandbox Code Playgroud)

因为这是一个生成器表达式,所以它具有仅遍历原始dict一次的属性,导致性能比其他迭代字典的替代方案提升,并且可选地将元素复制到新的或从中删除现有元素.生成器也可以链接,这在迭代时可以是一个强大的概念.

有关生成器表达式的更多信息:http: //www.python.org/dev/peps/pep-0289/