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

    1. 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

    2. 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.
    3. Ajout à la fin d’une liste
      1. 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]
                  
      2. 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)
      3. 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).
      4. 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']
    4. 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é
        
    5. enlever (effacer) un élément d’une liste
      1. 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]
          
      2. 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]
          
      3. 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é).

    6. 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
  4. Application

    1. É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.
    2. 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))