Permuter des valeurs d'une liste

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

  1. Modérateur

    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
    1. 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
    2. Modérateur
      @tristan

      Oui j'aurais une réponse ;-)

      il te faut combiner

      liste[x]=liste[y]

      et

      x, y = y, x
      0
  2. Je n'avais jamais essayé celle-ci:
    tab[i: j+1: j-i] = tab[j: i-1: j-i]

    -2