Back

Manipulation de listes avec Python

Manipulation de listes avec Python

  1. Objectifs

    • Etre capable de manipuler simplement les listes en python.
  2. Opération sur les listes

    • Les listes supportent l’opérateur + de concaténation, ainsi que l’opérateur * pour la duplication :
    • site = ['Le', 'site', 'apcpedagogie.com', 'est','un', 'site', "d'autoformation"]
      objectif = ['son','objectif','est', 'de', 'donner', 'à tout',
       'personnes,', 'un', 'ensemble', 'de', 'contenus',
       'simples', 'et', 'compréhensible.']
    • Concaténation:
      • site + objectif=
      • ['Le', 'site', 'apcpedagogie.com', 'est', 'un', 'site', "d'autoformation",'sont','objectif', 'est', 'de', 'donner', 'à tout', 'personnes,', 'un', 'ensemble', 'de', 'contenus', 'simples', 'et', 'compréhensible.']

    • Duplication:
      • site * 2=
      • ['Le', 'site', 'apcpedagogie.com', 'est', 'un', 'site', "d'autoformation", 'Le', 'site', 'apcpedagogie.com', 'est', 'un', 'site', "d'autoformation"]




  3. Opération

    • Parcourir une liste à l’aide de for, range() et len()
      • For
        • L’instruction for est l’instruction idéale pour parcourir une liste :
        • >>> site = ['Le', 'site', 'apcpedagogie.com', 'est','un', 'site', "d'autoformation"]
          >>> for mot in site:
          print (mot)

          #Sortie:

          Le
          site
          apcpedagogie.com
          est
          site
          d'autoformation
      • len()
        • L’instruction len() vous permet de connaître la longueur d’une liste, c’est-à-dire le nombre d’éléments que contient la liste.
        • La fonction len() retourne le nombre d’éléments d’une liste.
        • >>>maListe=[]
          >>>print len(maListe)
          0
          >>>maListe=[1, 2, 3, 4]
          >>>print len(maListe)
          4
      • range()
        • La fonction range() permet de créer une liste. Elle permet d’utiliser 3 paramètres. Le premier contient le numéro de départ de la liste, le second le dernier nombre de la liste et finalement l’incrément entre chaque nombre généré.
      • Conjointement range() et len()
        • Conjointement utilisé avec la fonction len(), elle permet de créer une boucle qui parcours tous les éléments d’une liste.
        • On peut combiner les fonctions range() et len() pour obtenir automatiquement tous les indices d’une liste.
        • site = ['Le', 'site', 'apcpedagogie.com', 'est','un', 'site', "d'autoformation"]
          for index in range(len(site)):
              print (index, site[index])

          Résultat d’exécution:
          0 Le
          1 site
          2 apcpedagogie.com
          3 est
          4 site
          5 d'autoformation

    • Trier une liste
      • Dans l’ordre croissant
        • Les fonctions sorted() et sort() permettent de trier une liste.
        • #utiliser sorted sans le nom de la liste
          print(sorted([1, 4, 3, 2]))
          #utiliser sorted avec le nom de la liste
          maListe=[1, 4, 3, 2]
          print(sorted(maListe))
          #utiliser le nom de la liste puis sort()
          maListe.sort()
          print(maListe)
        • La fonction sorted() retourne une nouvelle liste triée
        • Si vous n’avez pas besoin de la liste originale,l’utilisation de la fonction sort() est souhaitable.
      • Dans l’ordre décroissant
        • Par défaut, sort() ne nécessite aucun paramètre supplémentaire. Cependant, il a deux paramètres facultatifs:
        • L’un de ces paramètres est reverse – Si True, la liste triée est inversée (ou triée par ordre décroissant)
        • Alternativement pour sorted(), vous pouvez utiliser le code suivant.sorted(list, reverse=True)
        • maListe=[1, 4, 3, 2]
          maListe.sort(reverse=True)
          print(maListe)
          """
          Production:
          [4, 3, 2, 1]
          """
          print(sorted(maListe,reverse=True))
          """
          Production:
          [4, 3, 2, 1]
          """
      • Différence entre sort () et sorted ()
        • La différence la plus simple entre sort () et sorted () est: sort () change la liste directement et ne renvoie aucune valeur, tandis que sorted () ne change pas la liste et retourne la liste triée.
  4. Ajout à la fin d’une liste
    • Ajouter un élémentlist.append
      • Cette fonction sert à ajouter un élément à la fin d’une liste.
      • Ajoute son argument en tant qu’élément unique à la fin d’une liste. La longueur de la liste augmente de un.
      • syntaxe:
        • # Ajoute un objet (un nombre, une chaîne ou un
          # une autre liste) à la fin de ma_liste
          ma_liste.append (objet)
      • Exemple:
        • liste = [1, 2, 3, 4, 5]
               liste.append(6)
                     print liste # [1, 2, 3, 4, 5, 6]
                
    • Ajouter une liste list.extend
      • La méthode extend() ajoute les éléments de liste spécifiés (ou tout élément itérable) à la fin de la liste actuelle.
      • extend () :itère sur son argument et ajoute chaque élément à la liste et étend la liste. La longueur de la liste augmente du nombre d’éléments dans son argument.
      • syntaxe:
        • # Chaque élément d'un itérable est ajouté
          # à ma_liste
          ma_liste.extend (itérable)
      • Exemple:
        • fruits = ['orange', 'banane', 'poire']
          points = (1, 4, 5, 9)
          fruits.extend(points)
    • Utilisation de la méthode insert()
      • La méthode append() ne fonctionne que pour l’ajout d’éléments à la fin de la liste, pour l’ajout d’un élément à la position souhaitée, la méthode insert() est utilisée.
      • Contrairement à append() qui ne prend qu’un seul argument, la méthode insert() nécessite deux arguments (position, valeur).
    • Sans méthode
      • Exemples:
          • a = ['a', 'b', 'c']
            a += ['d', 'e'] ou a += 'de'

          • Le résultat sera: a=['a', 'b', 'c', 'd', 'e']
          • N’oubliez pas que lorsque Python itère sur une chaîne, le résultat est une liste des caractères du composant. Ainsi, cette déclaration ajoute également la liste [‘d’, ‘e’].
            a = ['a', 'b', 'c']
            a[len(a):] = ['d', 'e']

          • Le résultat sera: a=['a', 'b', 'c', 'd', 'e']
    • Inverser l’ordre des éléments d’une liste
      • Cette fonction permet de renverser l’ordre des éléments d’une liste, mais sans renvoyer de valeur : en effet, le renversement se fait directement dans la liste sur laquelle on a utilisé la méthode.
      • Si on veut récupérer la valeur, on peut utiliser la fonction reversed(liste) (qui n’est pas une méthode de la classe list).
      • syntaxe: list.reverse()
      • Exemple:
      • liste = [1, 2, 3, 4, 5]
        liste.reverse()
        print (liste) 
        #Sortie: [5, 4, 3, 2, 1]
        #Impression
        for o in reversed(liste):
            print(o)
        # Sortie: 5, 4, 3, 2, 1 <-- pas modifié
        
    • enlever (effacer) un élément d’une liste
      • list.remove()
        • La méthode remove() permet de supprimer une valeur dont on ne veut pas dans la liste.
        • syntaxe: list.remove(valeur)
        • Exemple:
        • liste = [1, 2, 3, 4, 5]
          liste.remove(1)
          print liste # [2, 3, 4, 5]
          
      • list.del()
        • L’instruction del supprime un élément d’une liste à un indice déterminé :
        • L’instruction del, permet d’effacer un ou plusieurs éléments à partir de leur(s) index :
        • >>> del nombres[2]
          >>> nombres
          [12, 72, 17, 10]
          >>> del nombres[1:3]
          >>> nombres
          [12, 10]
          
      • Différences
        • Notez bien la différence entre la méthode remove() et l’instruction del : del travaille avec un index ou une tranche d’index, tandis que remove() recherche une valeur (si plusieurs éléments de la liste possèdent la
          même valeur, seul le premier est effacé).

    • Compter le nombre d’éléments d’une liste
      • La méthode .count() compte le nombre d’éléments (passés en argument) dans une liste :
      • >>> a=[1 , 2, 4, 3, 1, 1]
        >>> a. count (1)
        3
        >>> a. count (4)
        1
        >>> a. count (23)
        0
  5. Application

    • Énoncé
      • Ecrire un script python qui permet de supprimer l’élément numéro i d’une liste puis insérer cet élément aux positions p1 et p2 saisies par l’utilisateur.
    • Solution proposée
      • liste = [1, 2, 3, 4, 5, 6, 7, 8]
        print("Liste initiale :  "+str(liste))
        #L’instruction del supprime un élément d’une liste à un indice déterminé
        #Récupérer l'élément à supprimer
        element=liste[2]
        print("Elément à supprimer est : "+str(element))
        del liste[2]
        print("Liste après supression "+str(liste))
        #Demander à l'utilisateur de saisir la première position
        position1=int(input("Saisir la position 1 de l'élément à insérer"))
        if (position1<=len(liste)):
            print("La position 1 saisie est :"+ str(position1))
            # Ajout d'un élément à position spécifique (en utilisant la méthode d'insertion)  
            liste.insert(position1, element)
            print("Nouvelle liste après insertion dans la postion  :  ",str(position1)+"\n",str(liste))
        position2=int(input("Saisir la position 2 de l'élément à insérer"))
        if (position2<=len(liste)):
            print("La position 2 saisie est :"+ str(position2))
            # Ajout d'un élément à position spécifique (en utilisant la méthode d'insertion)  
            liste.insert(position2, element)
            print("Nouvelle liste après insertion dans la postion  :  ",str(position1)+"\n",str(liste))



Riadh HAJJI

Abonnez vous à notre chaîne YouTube gratuitement