Может ли кто-нибудь объяснить поведение следующего кода?
import random
abc = ['a', 'b', 'c']
xyz = ['x', 'y', 'z']
def randomize(x):
random.shuffle(x)
x = x[0]
print('expected: ' + str(x))
return x
random_list = [abc, xyz]
for r in random_list:
r = randomize(x=r)
print('-----\n')
print('actual: ' + str(abc))
print('actual: ' + str(xyz))
Если я запускаю код вне цикла for, он будет работать так, как ожидается:
abc = randomize(abc)
print('actual: ' + str(abc))
Я ожидаюоднако возвращаемое значение совпадает с тем, что печатается в функции, но это не так.