Skip to content

Commit cd4cfa6

Browse files
author
d.grigonis
authored
gh-118932: ChainMap.__contains__ performance improvement (gh-118946)
1 parent 7e894c2 commit cd4cfa6

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

Lib/collections/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1016,7 +1016,7 @@ def __getitem__(self, key):
10161016
return self.__missing__(key) # support subclasses that define __missing__
10171017

10181018
def get(self, key, default=None):
1019-
return self[key] if key in self else default
1019+
return self[key] if key in self else default # needs to make use of __contains__
10201020

10211021
def __len__(self):
10221022
return len(set().union(*self.maps)) # reuses stored hash values if possible
@@ -1028,7 +1028,10 @@ def __iter__(self):
10281028
return iter(d)
10291029

10301030
def __contains__(self, key):
1031-
return any(key in m for m in self.maps)
1031+
for mapping in self.maps:
1032+
if key in mapping:
1033+
return True
1034+
return False
10321035

10331036
def __bool__(self):
10341037
return any(self.maps)

0 commit comments

Comments
 (0)