Python замена элементов списка не работает должным образом - PullRequest
1 голос
/ 06 мая 2020

Я написал простой код: два переставить два элемента в списке, используя самый базовый c:

a, b = b, a

код выглядит так:

nums[i], nums[nums[i] - 1] = nums[nums[i] - 1], nums[i]

выше swap приводит к бесконечному l oop, где элементы дублируются в списке, что не позволяет поменять местами. Но изменение его на следующее работает:

nums[nums[i] - 1], nums[i] = nums[i], nums[nums[i] - 1]

Своп не работает из-за порядка переменных для обмена.

Если да, то насколько это логично? Что мне не хватает?

1 Ответ

0 голосов
/ 06 мая 2020
def swap(index1, index2, list_):
    a, b = list_[index1], list_[index2]
    list_[index1], list_[index2] = b, a
    return list_

может использовать такую ​​функцию, как эта, где вы передаете список и индекс списка элементов, которые хотите поменять местами, а затем он возвращает список с замененными элементами. могут быть более короткие решения, но это определенно один из способов сделать что-то

...