Вы не знаете, как работает Python:
list_=[5,4,6,3,7]
swap(list_[4],list_[2]) # this is absolutely the same as
swap(7,6)
Основополагающим понятием Python является использование имен и значений.Когда вы записываете имя в коде, оно обозначает значение, прикрепленное к нему во время выполнения.В этом случае list_[4]
- это имя, которое обозначает значение 7
.
Если вы хотите что-то изменить, вы должны использовать одно из его имен.Здесь вы хотите изменить list_
, поэтому вы должны сделать это:
def swap(data, i1, i2):
data[i1], data[i2] = data[i2], data[i1]
swap(list_, 4,2) # swaps list index 4 and 2