私は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);
私は2つの「更新」を行う場合は、正しい動作が最初の更新で、私は0で、私がすべき次にタプルを持つべきであるということでなければなりませんキー 'hash1'を持つ空の辞書があります。しかし、私はそれを取る実際の行動で:
まず更新:
peers = {'hash1': [('bot1', 1)]}
(1で2つの更新はなぜ?)
セカンド更新:
peers = {'hash1': [('bot1', 0)]}
(ああこれ!更新は、最初の1正しいのですが、なぜいけないのでしょうか?)
誰かがそのbucleで私を助けることができますか?なぜこの動きがあるのかわかりません...私は、くちばしは正しいと思いますが、
ありがとう!
ため
peers_temp = self.peers[key].copy()
を変更します。これは非常に悪い習慣です。 –