我在Python中有一个字典,里面有一个元组列表。 一个例子是:
peers = {'hash1': [('bot2', 1), ('bot1', 1)]}
我想做一个名为“update”的函数,它接受所有字典,如果在元组中有一个数字,则变为0,如果为0,则删除元组。
我实现的循环是:
def update(self):
for key in self.peers.keys():
for tup in self.peers[key]:
print "--"
print tup
if 0 in tup:
self.peers[key].remove(tup)
else:
newTup = (tup[0], 0)
self.peers[key].remove(tup)
self.peers[key].append(newTup);
如果我做两个“更新”,正确的行为应该是在第一次更新中我应该将元组设置为0,然后在下一个我应该有一个带有键'hash1'的空字典。但在实际行为中,我认为:
首次更新:
peers = {'hash1': [('bot1', 1)]}
(两个更新合二为什么?为什么?)
第二次更新:
peers = {'hash1': [('bot1', 0)]}
(哦!这个更新是正确的,但为什么不是第一个?)
有人可以帮我解决这个问题吗?我不知道为什么会有这种行为......我认为这个循环是正确的但是......
谢谢!