我有一個Python中的字典,裏面有一個元組列表。 它的一個例子是:使用Python中的元組閱讀字典
peers = {'hash1': [('bot2', 1), ('bot1', 1)]}
我想做一個所謂的「更新」是把所有的字典,如果在元組有一個數字一個功能,變爲0,如果是0,刪除元組。
,我實現的bucle是這樣的:
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)]}
(哦,這更新是正確的,但爲什麼不是第一個?)
有人可以幫我那個叔叔嗎?我不知道它爲什麼會有這種行爲...我認爲這種行爲是正確的,但是..
謝謝!
,你去通過它,你正在修改的列表。這是非常糟糕的做法。 –