len() on mutables vs. immutables

Discussion in 'Python' started by Demian Brecht, Oct 18, 2012.

  1. I'm curious as to the implementation (I'd be happy to dig through the
    source, just don't have the time right now). I've seen various
    implementations across interpreters in the past (some which have been
    rather shocking) and I'd like to get some insight into Python (well,
    CPython at this point anyway).

    When len() is called passing an immutable built-in type (such as a
    string), I'd assume that the overhead in doing so is simply a function
    call and there are no on-call calculations done. Is that correct?

    I'd also assume that mutable built-in types (such as a bytearray) would
    cache their size internally as a side effect of mutation operations. Is
    that correct? If so, is it safe to assume that at least all built-in
    types observe this behavior, or are there some that incur an O(n) cost
    on every len() call?

    Obviously this can't be controlled with custom types that implement
    their own __len__, I'm only asking about Python's built-ins.

    Thanks,
    Demian
    @demianbrecht
    http://demianbrecht.github.com
     
    Demian Brecht, Oct 18, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Terry Reedy

    Re: len() on mutables vs. immutables

    Terry Reedy, Oct 18, 2012, in forum: Python
    Replies:
    0
    Views:
    117
    Terry Reedy
    Oct 18, 2012
  2. Demian Brecht

    Re: len() on mutables vs. immutables

    Demian Brecht, Oct 18, 2012, in forum: Python
    Replies:
    0
    Views:
    132
    Demian Brecht
    Oct 18, 2012
  3. Demian Brecht

    Re: len() on mutables vs. immutables

    Demian Brecht, Oct 18, 2012, in forum: Python
    Replies:
    0
    Views:
    126
    Demian Brecht
    Oct 18, 2012
  4. Nick Cash

    RE: len() on mutables vs. immutables

    Nick Cash, Oct 18, 2012, in forum: Python
    Replies:
    0
    Views:
    103
    Nick Cash
    Oct 18, 2012
  5. Prasad, Ramit

    RE: len() on mutables vs. immutables

    Prasad, Ramit, Oct 18, 2012, in forum: Python
    Replies:
    0
    Views:
    124
    Prasad, Ramit
    Oct 18, 2012
Loading...

Share This Page