Permuter des valeurs d'une liste

Fermé
tristan - Modifié le 3 nov. 2022 à 12:31
jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 - 3 nov. 2022 à 10:49

Bonjour,

J'aurais besoin d'un peu d'aide pour un exercice.

Il m'est demandé de coder une fonction permute() qui prend en argument une liste Python et deux indices i et j, et renvoie une liste dans laquelle les éléments d’indice i et j de la liste initiale ont été échangés.

Exemple:

assert permute([4, 0, 2, -1], 0, 3) == [-1, 0, 2, 4], "/!\ fonction permute() à retravailler"

2 réponses

jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 9 221
Modifié le 2 nov. 2022 à 16:33

Bonjour,

tu devrais lire en détail : https://python.doctor/page-apprendre-listes-list-tableaux-tableaux-liste-array-python-cours-debutant

tu y découvriras que l'on peut faire liste[x]=liste[y]

et sachant qu'en python 3 on peut échanger les valeurs de 2 variables,

x = 1
y = 2
x, y = y, x
print(x,y)

tu devrais facilement arriver à écrire ta fonction

il existe même une multitude de méthodes pour permuter le contenu de 2 variables : https://stacklima.com/programme-python-pour-permuter-deux-variables/


0

excuse moi mais ça n'est pas vraiment ce qui m'est demandé. Car je dois pouvoir échanger des chiffres d'une seul et même liste, et non échanger les chiffres entre liste d'où le fait d'utiliser la fonction permute().

Je ne sais pas si tu as la réponse ducoup ?

0
jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 9 221 > tristan
Modifié le 3 nov. 2022 à 10:50

Oui j'aurais une réponse ;-)

il te faut combiner

liste[x]=liste[y]

et

x, y = y, x
0
PierrotLeFou
2 nov. 2022 à 21:35

Je n'avais jamais essayé celle-ci:
tab[i: j+1: j-i] = tab[j: i-1: j-i]

-2