Python list reference in a function.
<p>I'm having trouble understanding the odd behaviour in python functions if i pass in a list. 
I made the following functions:</p>

<pre><code>def func(x):
    y = [4, 5, 6]
    x = y

def funcsecond(x):
    y = [4, 5, 6]
    x[1] = y[1]

x = [1, 2, 3]
</code></pre>

<p>When i call func(x) and then print out x , it prints out [1, 2, 3], just the way x was before,  it doesnt assign the list y to x. However, if i call funcsecond(x), it assigns 5 to the second position of x. Why is that so? When i assign the whole list, it doesn't do anything, but when i assign only one element, it changes the list i originally called it with.
Thank you very much and i hope you understand what im intending to say , i'm having a hard time expressing myself in English. </p>
