Python: Quando uma variável é passada por referência e quando por valor? [duplicado

Possible Duplicate:
Python: Como passo uma variável por referênci

Meu código:

locs = [ [1], [2] ]
for loc in locs:
    loc = []

print locs
# prints => [ [1], [2] ]

Por que éloc não referência de elementos delocs ?

Python: Tudo é passado como referência, a menos que explicitamente copiado [Isso não é verdade? ]

Por favor, explique .. como o python decidereferenciar e copiar ?

Update:

Como fazer

def compute(ob):
   if isinstance(ob,list): return process_list(ob)
   if isinstance(ob,dict): return process_dict(ob)

for loc in locs:
   loc = compute(loc)  # What to change here to make loc a reference of actual locs iteration ?
locs deve conter a resposta final processada!Eu não quero usarenumerate, é possível sem ele?

questionAnswers(12)

yourAnswerToTheQuestion