Bizzare lst length problem

Fredrik Lundh fredrik at
Sun Oct 8 15:38:01 CEST 2006

Ben wrote:

> Ah - I found out why I had cast it to a string. I had not, at that
> point, worked out ho to pass the list by value rather than reference,
> and so was casting to a string as a stopgap measure that I then forgot
> about. Now the problem is fixed after this group told me how to pass a
> list by value (by slicing the entire list)

if you write code that needs to treat a list as a distinct mutable 
value, make sure *your* code makes a copy.  relying on the caller to 
remember to do that in all cases is way too error prone.

in other words, instead of doing

    def function(seq):
        # modify the sequence


    # must pass in a copy, or things will break in mysterious ways


    def function(seq):
        seq = list(seq) # make a distinct copy
        # modify the sequence




More information about the Python-list mailing list