Outils pour utilisateurs

Outils du site


issue174:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue174:python [2021/11/01 10:53] d52frissue174:python [2021/11/02 16:25] (Version actuelle) andre_domenech
Ligne 11: Ligne 11:
 Let’s say that List1 contains all of the episodes for a show called “My Life” that have aired so far. And let’s further say that List2 contains the episodes that we have recorded on our home PVR. (The Sxx stands for Season (Series for my friends outside of the US) of the show, and the Exx stands for Episode number.) Just looking at the lists written down, it’s easy to see that List2 (what we have recorded) is missing ‘S01E02’, ‘S01E04’ and ‘S01E06’, and that ‘S01E03’ was recorded twice. But how can we do it programmatically?** Let’s say that List1 contains all of the episodes for a show called “My Life” that have aired so far. And let’s further say that List2 contains the episodes that we have recorded on our home PVR. (The Sxx stands for Season (Series for my friends outside of the US) of the show, and the Exx stands for Episode number.) Just looking at the lists written down, it’s easy to see that List2 (what we have recorded) is missing ‘S01E02’, ‘S01E04’ and ‘S01E06’, and that ‘S01E03’ was recorded twice. But how can we do it programmatically?**
  
-Quelque part dans le fond de mon esprit, je crois avoir abordé le sujet des décors dans un article il y a de nombreuses années. Si c'est le cas, je ne pense pas avoir rendu justice au sujet. J'ai donc décidé d'y remédier ce mois-ci.+Quelque part, je crois avoir abordé le sujet des ensembles dans un article il y a de nombreuses années. Si c'est le cas, je ne pense pas avoir vraiment bien traîté le sujet. J'ai donc décidé d'y remédier ce mois-ci.
  
 Qu'est-ce qu'un ensemble ? La façon la plus simple de répondre à cette question est de vous montrer un exemple. Qu'est-ce qu'un ensemble ? La façon la plus simple de répondre à cette question est de vous montrer un exemple.
Ligne 21: Ligne 21:
 List2 = ['S01E01', 'S01E03', 'S01E05', 'S01E07', 'S01E08', 'S01E03'] List2 = ['S01E01', 'S01E03', 'S01E05', 'S01E07', 'S01E08', 'S01E03']
  
-Disons que la liste 1 contient tous les épisodes d'une émission intitulée « Ma vie » qui ont été diffusés jusqu'à présent. Disons également que la liste 2 contient les épisodes que nous avons enregistrés sur notre magnétoscope numérique. (Le Sxx correspond à la saison (série pour mes amis en dehors des États-Unis) de la série, et le Exx correspond au numéro de l'épisode). En regardant simplement les listes écrites, il est facile de voir que dans la liste 2 (ce que nous avons enregistré) manquent 'S01E02', 'S01E04' et 'S01E06', et que 'S01E03' a été enregistré deux fois. Mais comment pouvons-nous le faire de manière programmatique ?+Disons que la liste 1 contient tous les épisodes qui ont déjà été diffusés d'une émission intitulée « Ma vie ». Disons également que la liste 2 contient les épisodes que nous avons enregistrés sur notre magnétoscope numérique. (Le Sxx correspond à la saison de la série, et le Exx correspond au numéro de l'épisode). En regardant simplement les listes écrites, il est facile de voir que dans la liste 2 (ce que nous avons enregistré) manquent 'S01E02', 'S01E04' et 'S01E06', et que 'S01E03' a été enregistré deux fois. Mais comment pouvons-nous le faire de manière programmatique ?
  
  
Ligne 44: Ligne 44:
 {'S01E06', 'S01E02', 'S01E04'}** {'S01E06', 'S01E02', 'S01E04'}**
  
-Une solution consiste à utiliser l'opérateur inet à parcourir chacun des éléments de la liste 1 pour voir si l'élément se trouve dans la liste 2.+Une solution consiste à utiliser l'opérateur in et à parcourir chacun des éléments de la liste 1 pour voir si l'élément se trouve dans la liste 2.
  
 for epi in List1: for epi in List1:
     if epi not in List2:     if epi not in List2:
-        print(f 'Episode manquant {epi}')+        print(f 'Épisode manquant {epi}')
  
 print('Terminé') print('Terminé')
Ligne 80: Ligne 80:
 You can see that the set is just five items rather than the six we defined, so the duplicate S01E03 is excluded. Also notice that, as we saw in the definition of a set, the order is totally different from what we defined in the list.** You can see that the set is just five items rather than the six we defined, so the duplicate S01E03 is excluded. Also notice that, as we saw in the definition of a set, the order is totally different from what we defined in the list.**
  
-En utilisant les ensembles, nous pouvons faire la même chose beaucoup plus rapidementet avec une seule ligne de code. La méthode difference montrera tous les éléments de l'ensemble (a) qui ne sont pas dans l'ensemble (b). Que se passe-t-il si nous inversons les ensembles dans l'instruction difference, en comparant List2 à List1 ? Puisque chaque élément de List2 se trouve dans List1, nous obtenons un ensemble vide.+En utilisant les ensembles, nous pouvons faire la même chose beaucoup plus rapidement et avec une seule ligne de code. La méthode difference montrera tous les éléments de l'ensemble (a) qui ne sont pas dans l'ensemble (b). Que se passe-t-il si nous inversons les ensembles dans l'instruction difference, en comparant List2 à List1 ? Puisque chaque élément de List2 se trouve dans List1, nous obtenons un ensemble vide.
  
 print(set(List2).difference(set(List1)) print(set(List2).difference(set(List1))
Ligne 86: Ligne 86:
 set() set()
  
-Maintenant, qu'est-ce qu'un ensemble exactement ? En Python, un ensemble est défini comme « une collection non ordonnée d'éléments. Chaque élément est unique au sein de l'ensemble ». Si vous vous souvenez, List2 S01E03 en double, alors à quoi ressemble List2 lorsqu'elle est convertie en ensemble ?+Maintenant, qu'est-ce qu'un ensemble exactement ? En Python, un ensemble est défini comme « une collection non ordonnée d'éléments. Chaque élément est unique au sein de l'ensemble ». Si vous vous en souvenez, List2 contient S01E03 en double, alors à quoi ressemble List2 lorsqu'elle est convertie en ensemble ?
  
 print(set(List2)) print(set(List2))
Ligne 136: Ligne 136:
 {'S01E01', 'S01E03', 'S01E07', 'S01E08'} {'S01E01', 'S01E03', 'S01E07', 'S01E08'}
  
-L'opérateur add ne fonctionne qu'avec un seul élément. Il existe un opérateur update qui permet d'ajouter plusieurs éléments, qui peuvent être une liste, des chaînes de caractères, des tuples et d'autres ensembles. Vous pouvez également utiliser remove pour supprimer des éléments. Toutefois, si l'élément à supprimer ne fait pas partie de l'ensemble, discard() ne renverra pas d'erreur, mais remove() sortira une erreur s'il ne fait pas partie de l'ensemble.+L'opérateur add ne fonctionne qu'avec un seul élément. Il existe un opérateur update qui permet d'ajouter plusieurs éléments, qui peuvent être une liste, des chaînes de caractères, des tuples et d'autres ensembles. Vous pouvez également utiliser remove pour supprimer des éléments. Toutefois, si l'élément à supprimer ne fait pas partie de l'ensemble, discard() ne renverra pas d'erreur, mais remove() en sortira une.
  
-Nous disposons de nombreuses autres méthodes qui fonctionnent avec les ensembles. Elles incluent l'intersection, l'union, la différence symétrique. Pour les exemples suivants, nous utiliserons les valeurs suivantes.+Nous disposons de nombreuses autres méthodes qui fonctionnent avec les ensembles. Elles incluent l'intersection, l'union, la différence symétrique. Pour les exemples suivants, nous utiliserons les valeurs suivantes :
  
 SetA={1,2,3,4,5} SetA={1,2,3,4,5}
Ligne 174: Ligne 174:
 SetA | SetB SetA | SetB
  
-Différence+Difference
  
-Nous avons déjà vu la méthode Difference plus tôt. Elle renvoie les valeurs qui sont dans SetA et qui ne sont pas dans SetB.+Nous avons déjà vu la méthode difference plus tôt. Elle renvoie les valeurs qui sont dans l'ensemble A et qui ne sont pas dans l'ensemble B.
  
 SetA.difference(SetB) renvoie {1, 2, 3, 4} SetA.difference(SetB) renvoie {1, 2, 3, 4}
Ligne 233: Ligne 233:
 SetA ^ SetB SetA ^ SetB
  
-Les ensembles n'ont pas d'index comme les listes. Ainsi, alors que vous pouvez faire quelque chose comme+Les ensembles n'ont pas d'index comme les listes. Ainsi, alorsvous pouvez faire quelque chose comme
  
 >>> MaListe = [1,2,3,4,5,6] >>> MaListe = [1,2,3,4,5,6]
Ligne 283: Ligne 283:
 TypeError: 'set' object is not subscriptable TypeError: 'set' object is not subscriptable
  
-'set' object is not subscriptable  # l'objet 'set' n'est pas indexble+'set' object is not subscriptable  # l'objet 'set' n'est pas indexable
 >>> >>>
  
-Il existe également les méthodes issuperset() et issubset(). SetA est considéré comme un superset s'il contient tous les éléments de SetB. L'ensemble B est considéré comme un sous-ensemble de l'ensemble A si tous ses éléments sont dans l'ensemble A.+Il existe également les méthodes issuperset() et issubset(). SetA est considéré comme un sur-ensemble (supersets'il contient tous les éléments de SetB. L'ensemble B est considéré comme un sous-ensemble (subset) de l'ensemble A si tous ses éléments sont dans l'ensemble A.
  
 >>> SetA={1,2,3,4,5,6,7,8} >>> SetA={1,2,3,4,5,6,7,8}
 >>> SetB={1,2,3,4} >>> SetB={1,2,3,4}
 >>> SetA.issuperset(SetB) >>> SetA.issuperset(SetB)
-True #Vrai+True # Vrai
 >>> SetB.issuperset(SetA) >>> SetB.issuperset(SetA)
-False #Faux+False # Faux
 >>> SetB.issubset(SetA) >>> SetB.issubset(SetA)
 True True
  
-Cependant, considérez la situation suivante...+Cependant, considérez la situation suivante :
  
 >>> SetC={1,2,3,4,10} >>> SetC={1,2,3,4,10}
Ligne 362: Ligne 362:
 AttributeError: 'frozenset' object has no attribute 'add' AttributeError: 'frozenset' object has no attribute 'add'
  
-'frozenset' object has no attribute 'add' #L'objet 'frozenset' n'a pas d'attribut 'add'.+'frozenset' object has no attribute 'add' # L'objet 'frozenset' n'a pas d'attribut 'add'.
 >>> >>>
  
issue174/python.1635760418.txt.gz · Dernière modification : 2021/11/01 10:53 de d52fr