[Tutor] Is len(a_list) a computed value or a stored attribute of a_list?
Steven D'Aprano
steve at pearwood.info
Sun Dec 31 22:36:19 EST 2017
On Sun, Dec 31, 2017 at 08:53:49PM -0600, boB Stepp wrote:
> I was wondering if len(a_list) is computed on the fly or is it a
> stored attribute of the a_list object? And is the answer the same for
> both Python 2 and 3?
Technically the Python language doesn't make any guarantees about this,
but in practice it is a stored attribute of the list (as well as other
built-ins like tuples, strings, dicts and sets).
The answer is the same for both Python 2 and 3, and all the major Python
implementations (CPython, IronPython, Jython, PyPy). But technically I
guess it counts as a "quality of implementation" marker: crappy Python
interpreters might count the items in a list on the fly, good ones will
store it as a pre-computed attribute.
In practice, it is probably fine to assume that calling len() on
built-ins is fast, but for third-party sequences and collections it
might not be.
--
Steve
More information about the Tutor
mailing list