Commit 404bb98
Use O(1) dict lookups for player collection get/contains (#747)
Replace linear O(n) scans with dict-based O(1) lookups for
Players.get(), Players.__contains__(), append(), and remove().
Three private dicts (_by_token, _by_id, _by_name) are maintained
alongside the list to enable constant-time lookups by token, id,
or safe_name. Also fixes an existing bug in __contains__ where the
parameter `player` shadowed the outer variable in the generator.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 02a8bc1 commit 404bb98
1 file changed
+18
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
127 | 130 | | |
128 | 131 | | |
129 | 132 | | |
130 | 133 | | |
131 | 134 | | |
132 | | - | |
133 | | - | |
134 | 135 | | |
135 | | - | |
| 136 | + | |
136 | 137 | | |
137 | 138 | | |
138 | 139 | | |
| |||
172 | 173 | | |
173 | 174 | | |
174 | 175 | | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
186 | 182 | | |
187 | 183 | | |
188 | 184 | | |
| |||
266 | 262 | | |
267 | 263 | | |
268 | 264 | | |
269 | | - | |
| 265 | + | |
270 | 266 | | |
271 | 267 | | |
272 | 268 | | |
273 | 269 | | |
274 | 270 | | |
275 | 271 | | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
276 | 275 | | |
277 | 276 | | |
278 | | - | |
| 277 | + | |
279 | 278 | | |
280 | 279 | | |
281 | 280 | | |
282 | 281 | | |
283 | 282 | | |
284 | 283 | | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
285 | 287 | | |
286 | 288 | | |
287 | 289 | | |
| |||
0 commit comments