如何在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个增量)。 此外,我无法继续使用,因为我希望两个键值对可以同时访问。因此,当我递增时,我有当前的键值对以及下一个。如果我继续使用,我将失去对当前的访问权限并且只获得下一个键值对。
答案 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)
您无需触摸key
和value
:
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.