Это то, что вы пытаетесь сделать?
def time10(a):
""" multiple the elements by 10 in-place """
for i in xrange(len(a)):
a[i] *= 10
# returning a is optional. I think it maybe useful for use to chain the operation
return a
>>> a = range(10)
>>> time10(a)
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> b = range(10)
>>> time10(time10(b))
[0, 100, 200, 300, 400, 500, 600, 700, 800, 900]
>>> b
[0, 100, 200, 300, 400, 500, 600, 700, 800, 900]
>>>
Ваш исходный код копирует массив после его возврата.Обычно это бесполезная практика, способствующая замедлению работы.