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)
另见:
我想你想调用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/