Skip to content Skip to sidebar Skip to footer

How To Mutate A List With A Function In Python?

Here's a pseudocode I've written describing my problem:- func(s): #returns a value of s x = a list of strings print func(x) print x #these two should give the SAME output Whe

Solution 1:

func(s):
   s[:] = whatever after mutating
   return s

x = a list of strings
printfunc(x)print x

You don't actually need to return anything:

def func(s):
    s[:] = [1,2,3]

x = [1,2]
printfunc(x)print x # -> [1,2,3]

It all depends on what you are actually doing, appending or any direct mutation of the list will be reflected outside the function as you are actually changing the original object/list passed in. If you were doing something that created a new object and you wanted the changes reflected in the list passed in setting s[:] =.. will change the original list.

Solution 2:

That's already how it behaves, the function can mutate the list

>>>l = ['a', 'b', 'c'] # your list of strings>>>defadd_something(x): x.append('d')...>>>add_something(l)>>>l
['a', 'b', 'c', 'd']

Note however that you cannot mutate the original list in this manner

defmodify(x):
    x = ['something']

(The above will assign x but not the original list l)

If you want to place a new list in your list, you'll need something like:

defmodify(x):
    x[:] = ['something'] 

Post a Comment for "How To Mutate A List With A Function In Python?"