Pythonにはまったく新しく、これを理解することはできません。私は辞書にキーを追加してそれをうまく追加します。その同じキーを新しい値で更新することもできますが、2番目のキーを辞書に追加すると、2番目のキー値のペアは追加されません。Python辞書は、最初の文字の後に後続のキーを追加しません。
class CountedSet:
def __init__(self):
self.data = {}
def __iadd__(self,other):
if isinstance(other,int):
self.data[other] = self.data.get(other, 0) + 1
return self
elif isinstance(other,CountedSet):
#TODO::iterate through second countedSet and update self
return self
def __add__(self,obj):
for key, value in obj.data.items():
if len(self.data) == 0:
self.data[key] = value
elif self.data[key]:
self.data[key] = self.data[key] + value
else:
self.data[key] = value
return self
def __getitem__(self,item):
if item in self.data:
return self.data.get(item)
else:
return None
def __str__(self):
for key, value in self.data.items():
return("{%s,%s}" % (key,value))
a = CountedSet()
a += 17
a += 4
print(a)
これは、単に{17,1} Iは、forループの最初の反復に{17,1}、{4,1}
あなたの問題は –