Возможно, потому, что проверить длину списка всегда дёшево, а проверить наличие ключа в словаре — требует посчитать хеш ключа и в положительном случае этот же хеш сразу понадобится снова.
# ┌──────────────┬─ один доступ к памяти, два сравнения
x = xs[i] if 0 <= i < len(xs) else default_value
# └───┴── ещё один доступ к памяти
# ┌────┬─ хеш + обработка коллизий
x = d[k] if k in d else default_value
# └──┴─ ещё раз хеш + обработка коллизий
# ┌─────┬─ один раз хеш + обработка коллизий
x = d.get(k, default_value)
no subject
Date: 2022-09-18 06:15 pm (UTC)Возможно, потому, что проверить длину списка всегда дёшево, а проверить наличие ключа в словаре — требует посчитать хеш ключа и в положительном случае этот же хеш сразу понадобится снова.