사전에 키와 값을 설정하고 싶습니다. 다음은 내가하는 일의 예입니다.파이썬에서 중첩 된 무한 사전
class NestedDict(dict):
def __getitem__(self, key):
if key in self: return self.get(key)
return self.setdefault(key, NestedDict())
>>> c = NestedDict()
>>> c
{}
>>> c['a']['b'] = 'test'
>>> c['a']['c'] = 2
>>> c
{'a': {'c': 2, 'b': 'test'}}
>>> c['a']['c'] += 1
>>> c
{'a': {'c': 3, 'b': 'test'}}
>>> c['a']['d'] += 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +=: 'NestedDict' and 'int'
어떤 아이디어로이 문제를 해결할 수 있습니까? + = 및 - =를 사용할 수 있기를 바랍니다. 물론 가치가 존재하지 않는다면 + = 1은 1과 동일합니다. 아마도 더 나은 해결책이 있을까요?
감사합니다.
, 그래서 당신은 그것을 시작하고 뭔가를 증가합니다. 'c [someNonExistingKey] + = 1'라고 쓸 때 – lpostula
을 원하는대로 할 수 있습니다. 원하는 결과는 무엇입니까? – georg
알아요,하지만 값이 없으면 자동으로 0을 설정하고 + = – eshlox