diff options
Diffstat (limited to 'pypers/oxford/defaultdict.py')
-rwxr-xr-x | pypers/oxford/defaultdict.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/pypers/oxford/defaultdict.py b/pypers/oxford/defaultdict.py new file mode 100755 index 0000000..ce14508 --- /dev/null +++ b/pypers/oxford/defaultdict.py @@ -0,0 +1,21 @@ + +def defaultdict(default, dictclass=dict): + class defdict(dictclass): + def __getitem__(self, key): + try: + return super(defdict, self).__getitem__(key) + except KeyError: + return self.setdefault(key, default) + return defdict + +d = defaultdict(0)() +d["x"] += 1 +d["x"] += 1 +d["y"] += 1 +print d + +d = defaultdict(list())() +d["x"].append(1) +d["x"].append(2) +d["y"].append(1) +print d |