Je n'ai pas été en mesure de trouver une bonne solution à ce problème sur le net (probablement parce que switch, position, list et Python sont tous de tels mots surchargés).
C'est assez simple - j'ai cette liste:
['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter']
Je voudrais changer de position 'password2'
et 'password1'
- ne connaissant pas leur position exacte, seulement qu'ils sont juste à côté l'un de l'autre etpassword2
sont les premiers.
J'ai accompli cela avec une liste d'indexation assez longue, mais je me demandais s'il était possible de trouver quelque chose d'un peu plus élégant?
Réponses:
la source
Le swap Python simple ressemble à ceci:
Maintenant, tout ce que vous avez à faire est de comprendre ce qui
i
est, et cela peut facilement être fait avecindex
:la source
Compte tenu de vos spécifications, j'utiliserais l'attribution de tranche:
Le côté droit de l'affectation de tranche est une "tranche inversée" et pourrait également être orthographié:
si vous trouvez cela plus lisible, comme beaucoup le feraient.
la source
Comment peut-il être plus long que
C'est juste un échange simple utilisant un stockage temporaire.
la source
my_list[indexOfPwd2],my_list[indexOfPwd2+1] = my_list[indexOfPwd2+1],my_list[indexOfPwd2]
à la suite de cela, si le dernier élément est supérieur à l'élément en position,
i
ils sont tous les deux échangés.la source
vous pouvez utiliser par exemple:
la source
Je ne suis pas un expert en python mais vous pourriez essayer: dites
ci-dessus donnerait o / p comme:
la source