Я не смог найти хорошего решения для этой проблемы в сети (вероятно, потому что switch, position, list и Python - все такие перегруженные слова).
Это довольно просто - у меня есть этот список:
['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter']
Я хотел бы поменять положение 'password2'
и 'password1'
- не зная их точного положения, только то, что они находятся рядом друг с другом и стоят на password2
первом месте.
Я достиг этого с помощью довольно многословной подписки на списки, но мне было интересно, можно ли придумать что-нибудь более элегантное?
Ответы:
источник
Простой обмен Python выглядит следующим образом:
Теперь все, что вам нужно сделать, это выяснить, что
i
есть, и это можно легко сделать с помощьюindex
:источник
Учитывая ваши характеристики, я бы использовал slice-assignment:
Правая часть назначения среза является «перевернутым срезом» и также может быть записана:
если вы найдете это более читабельным, как многие.
источник
Как это может быть дольше, чем
Это просто простой обмен с использованием временного хранилища.
источник
my_list[indexOfPwd2],my_list[indexOfPwd2+1] = my_list[indexOfPwd2+1],my_list[indexOfPwd2]
в результате этого, если последний элемент больше, чем элемент в позиции,
i
они оба меняются местами.источник
Вы можете использовать, например:
источник
Я не эксперт в Python, но вы можете попробовать: скажем
выше даст o / p как:
источник