Я новичок в python и пытаюсь создать функцию, которая меняет несколько значений в списке одновременно.
def swap(deck: List[int], start1: int, end1: int, start2: int, end2: int) -> None:
start1 = start1 % len(deck)
start2 = start2 % len(deck)
end1 = end1 % len(deck)
end2 = end2 % len(deck)
if start1 < start2:
deck[start1: end1], deck[start2: end2] = deck[start2: end2], deck[start1: end1]
else:
deck[start2: end2], deck[start1: end1] = deck[start1: end1], deck[start2: end2]
, когда deck = [0,1,2,3,4,5,6,7,8,9,10]
swap(deck, -3, 11, 0, 2)
должен изменить колоду на [8,9,2,3,4,5,6,7,0,1,10]
, но вместо этого я получаю [2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 10]
Я также пробовал это с помощью метода переменной temp
temp = deck[start1: start1]
deck[start1: start1] = deck[start2: end2]
deck[start2: end2] = temp
но я получаю тот же результат ... Объяснение того, почему это происходит и как я могу это исправить, очень ценится.