Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes |
python:bases:ensembles [2022/09/03 10:24] – [3. Eléments dans un ensemble] phil | python:bases:ensembles [2022/09/03 10:30] – [1. Introduction] phil |
---|
* ** Mots-clés** : ensemble, mutable, immuable, union, intersection, différence, différence symétrique, comparaison, égalité, inclusion, disjoint. | * ** Mots-clés** : ensemble, mutable, immuable, union, intersection, différence, différence symétrique, comparaison, égalité, inclusion, disjoint. |
| |
<note important>Les mots ci-dessous sont dits "réservés". Ils ne peuvent pas être utilisés comme nom de variable. Les mots __soulignés__ sont une nouveauté de Python 3. Les mots en **gras** sont utilisés dans cette page.</note> | <callout type="warning" icon="true">Les mots ci-dessous sont dits "réservés". Ils ne peuvent pas être utilisés comme nom de variable. Les mots __soulignés__ sont une nouveauté de Python 3. Les mots en **gras** sont utilisés dans cette page.</callout> |
| |
| and | continue | finally | is | raise | | | and | continue | finally | is | raise | |
Proche des dictionnaires, les sets ne stockent qu'une clé. Ils sont très utilisés pour **garder le nombre d'éléments uniques d'une séquence** ou faire le **test d'appartenance sur les éléments d'une séquence**. Un set peut stocker n'importe quel élément hashable (entier,caractère, booléen etc.). | Proche des dictionnaires, les sets ne stockent qu'une clé. Ils sont très utilisés pour **garder le nombre d'éléments uniques d'une séquence** ou faire le **test d'appartenance sur les éléments d'une séquence**. Un set peut stocker n'importe quel élément hashable (entier,caractère, booléen etc.). |
| |
<note important>Les ensembles ne sont pas ordonnés !</note> | <callout type="warning" icon="true">Les ensembles ne sont pas ordonnés !</callout> |
==== 2. Création ==== | |
| |
| ==== 2. Création ==== |
=== 2.1 Création en extension === | === 2.1 Création en extension === |
| |
<note>On crée un ensemble avec les accolades, comme les dictionnaires, mais sans utiliser le caractère ":" ou avec la fonction **set**().</note> | <callout type="primary" icon="true">On crée un ensemble avec les accolades, comme les dictionnaires, mais sans utiliser le caractère ":" ou avec la fonction **set**().</callout> |
| |
// Exemple 1 // : avec des accolades | // Exemple 1 // : avec des accolades |
| |
=== 2.1 Création d'un ensemble vide === | === 2.1 Création d'un ensemble vide === |
<note important>Un ensemble vide se crée seulement avec la fonction **set**().</note> | <callout type="warning" icon="true">Un ensemble vide se crée seulement avec la fonction **set**().</callout> |
| |
//Exemple// | //Exemple// |
Source <html><a href = "https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset" target="_blank">set, frozenset</a></html> | Source <html><a href = "https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset" target="_blank">set, frozenset</a></html> |
| |
<note>Un frozenset est un ensemble qu'on ne peut pas modifier, et qui donc peut servir de clé dans un dictionnaire, ou être inclus dans un autre ensemble (mutable ou pas).</note> | <callout type="primary" icon="true">Un frozenset est un ensemble qu'on ne peut pas modifier, et qui donc peut servir de clé dans un dictionnaire, ou être inclus dans un autre ensemble (mutable ou pas).</callout> |
| |
| |
</code> | </code> |
| |
<note tip>Lors d'un test d'appartenance sur une séquence, convertir la séquence en set accélère le traitement.</note> | <callout type="tip">Lors d'un test d'appartenance sur une séquence, convertir la séquence en set accélère le traitement.</callout> |
| |
=== 5.2 Cardinal === | === 5.2 Cardinal === |
</code> | </code> |
| |
<note>discard fonctionne même si l'élément n'est pas présent</note> | <callout type="primary" icon="true">discard fonctionne même si l'élément n'est pas présent.</callout> |
| |
<code python *.py> | <code python *.py> |
</code> | </code> |
| |
<note warning>Contrairement à discard, l'élément doit être présent, sinon il se produit une exception.</note> | <callout icon="fa fa-hand-stop-o" color="red" title="ATTENTION">Contrairement à discard, l'élément doit être présent, sinon il se produit une exception.</callout> |
| |
<code python *.py> | <code python *.py> |
| |
=== 5.4 Opérations sur les ensembles === | === 5.4 Opérations sur les ensembles === |
<note>Les notations des opérateurs sur les ensembles rappellent les opérateurs "**bit-à-bit**" sur les entiers. \\ | <callout type="primary" icon="true">Les notations des opérateurs sur les ensembles rappellent les opérateurs "**bit-à-bit**" sur les entiers. \\ |
Ces opérateurs sont également disponibles sous la forme de méthodes.</note> | Ces opérateurs sont également disponibles sous la forme de méthodes.</callout> |
| |
* **Union** | * **Union** |
* **Différence symétrique** | * **Différence symétrique** |
| |
<note>**𝐴Δ𝐵=(𝐴−𝐵) ∪ (𝐵−𝐴)**</note> | <callout type="primary" icon="true">**𝐴Δ𝐵=(𝐴−𝐵) ∪ (𝐵−𝐴)**</callout> |
| |
<code python *.py> | <code python *.py> |