Discuss / Python / 小重构

小重构

Topic source

4Neutrino

#1 Created at ... [Delete] [Delete and Lock User]

<pre>if len(self) - containsKey >= self._capacity: 因为这句逻辑不是很直白符合直觉,我寻思重构了下相关代码,欢迎探讨: from collections import OrderedDict class LastUpdatedOrderedDict(OrderedDict): def init(self, capacity): super().init() self._capacity = capacity def setitem(self, key, value): containskey = key in self if len(self) == self._capacity: if containskey: del self[key] else: first = self.popitem(last = False) print('remove:', first) print('set:' if containskey else 'add:', (key, value)) super().setitem(key, value) if name == "main": d = LastUpdatedOrderedDict(3) d['c']= 2772 d['a']= 33333 d['b']= 325235 print(d) d['d'] = 324 print(d) d['a'] = 999 print(d) </pre>

乞丐200609

#2 Created at ... [Delete] [Delete and Lock User]

你这个在长度没有达到最大的时候 是不会去去重的 你可以试试d[a]=xxx,d[a]=xxx,d[a]=xxx,


  • 1

Reply