Python: Pass by reference and slice assignment

Viewed 2095

In Python, lists are passed by reference to functions, right?

If that is so, what's happening here?

>>> def f(a):
...     print(a)
...     a = a[:2]
...     print(a)
...
>>> b = [1,2,3]
>>> f(b)
[1, 2, 3]
[1, 2]
>>> print(b)
[1, 2, 3]
>>>
3 Answers
Related