Сколько раз вы видели что-то вроде этого:
tmp = reference reference = new_value return tmp
Это не действительно беспокоит меня, но есть ли какие-то пифонические сокращения, чтобы выполнить то же самое без временногопеременная?
(я представляю что-то вроде return shift(reference, new_value) ...)
return shift(reference, new_value)
Tuple swap является самым простым:
if x = 5 and y = 10
затем
x,y = y,x will swap their values: x = 10 y = 5
IIUC:
>>> a=1 >>> b=2 >>> a,b=b,a >>> a 2 >>> b 1 >>>
Перестановка переменных в этом случае может работать как положено
Итак, в основном логика написана:
a,b=b,a ^ ^ ^ ^ 1 2 2 1 2 1 ^ ^ 1 2