New GitHub issue #118932 from dgrigonis:<br>
<hr>
<pre>
### Proposal:
```python
import collections as coll
class ChainMap2(coll.ChainMap):
def __contains__(self, key):
for mapping in self.maps:
if key in mapping:
return True
return False
def get(self, key, default=None):
for mapping in self.maps:
if key in mapping:
return mapping[key]
return default
maps = [dict(a=1), dict(a=2, b=2), dict(a=3, b=2, c=3)]
cm = coll.ChainMap(*maps)
cm2 = ChainMap2(*maps)
%timeit 'a' in cm # 615 ns
%timeit 'c' in cm # 752 ns
%timeit cm.get('a') # 776 ns
%timeit cm.get('c') # 1.46 µs
%timeit 'a' in cm2 # 140 ns
%timeit 'c' in cm2 # 198 ns
%timeit cm2.get('a') # 147 ns
%timeit cm2.get('c') # 208 ns
```
### Has this already been discussed elsewhere?
I have already discussed this feature proposal on Discourse
### Links to previous discussion of this feature:
https://discuss.python.org/t/collections-chainmap-get-performance/41925
</pre>
<hr>
<a href="https://github.com/python/cpython/issues/118932">View on GitHub</a>
<p>Labels: type-feature</p>
<p>Assignee: </p>