-
Les tests d'adhésion sont au centre de la conception du programme, et l'ensemble de valeurs d'entrée valides en est un exemple. Lorsque l'utilisateur saisit le contenu dans la collection, sa saisie est valide ou invalide.
Les tests d'appartenance simples recommandent d'utiliser des ensembles.
valid_input={"yes","y","no","n"}
answer=None
while answer not in valid_inputs:
answer=input("Continue? [y,n]").lower()
Un ensemble conserve les éléments inchangés dans un état sans ordre particulier. Si un élément est membre d'un ensemble, aucun autre élément ne peut être ajouté à l'ensemble.
valid_inputs={"yes","y","no","n"}
valid_inputs.add("y")
valid_inputs
{'no','y','n','yes'}
Nous avons créé un ensemble avec 4 chaînes différentes - valid_inputs. Vous ne pouvez pas ajouter un autre y à un ensemble qui contient déjà y. Le contenu de l'ensemble ne peut pas être modifié.
Notez que l'ordre des éléments de l'ensemble n'est pas exactement l'ordre que nous avons initialement fourni. Un ensemble ne peut maintenir aucun ordre particulier d'éléments, il peut seulement déterminer si un élément existe dans l'ensemble.
month_name_list=["jan","Feb","Mar","Apr",
"May","Jun","Jul","Aug",
"Sep","Oct","Nov","Dec"]
month_name_list[8]
"sep"
month_name_list.index("Feb")
1
Nous avons créé une liste avec 12 éléments de chaîne - month_name_list. Un élément peut être sélectionné en fournissant sa position, et la méthode index() peut être utilisée pour trouver l'index de l'élément dans la liste.
La position des listes en Python commence toujours à 0, et il en va de même pour les tuples et les chaînes.
Si le nombre d'éléments dans l'ensemble est fixe, par exemple trois valeurs pour une couleur RVB, alors il peut être nécessaire d'utiliser un tuple au lieu d'une liste. Si le nombre d'éléments augmente et change, alors une liste est un meilleur choix qu'un tuple.
scheme={"Crimson":(220,14,60),
"DarkCyan",(0,139,139),
"Yellow":(255,255,00)}
scheme['Crimson']
(220,14,60)
Nous avons ajouté un mappage des noms de couleurs aux tuples de couleurs RVB dans le schéma du dictionnaire. Lors de l'utilisation d'une clé, telle que "Crimson", la valeur liée à cette clé peut être récupérée.
Au lieu de créer un ensemble avec des listes comme éléments, nous pouvons convertir chaque liste en tuple. Nous pouvons créer des ensembles avec des tuples immuables comme éléments.
De même, les clés de dictionnaire doivent être immuables. Vous pouvez utiliser des nombres, des chaînes ou des tuples comme clés de dictionnaire. Vous ne pouvez pas utiliser de listes, d'ensembles ou d'autres mappages modifiables comme ensembles de dictionnaire.
Chacune des collections intégrées de Python fournit un ensemble unique de fonctions. Ces collections fournissent également de nombreuses fonctionnalités qui se chevauchent, ce qui peut être un défi pour les débutants en Python.
En fait, le module collections.abc fournit une sorte de guide à travers les collections intégrées. Le module collections.abc définit une classe de base abstraite (ABC) qui prend en charge les classes concrètes. Nous verrons ce que ces constructions font par les noms dans cet ensemble de définitions.
Les collections peuvent être divisées en 6 catégories selon les classes de base abstraites.
-
Ensemble mutable : collection d'ensembles. -
Ensembles immuables : collections frozenset.
-
Séquence mutable : une collection de listes. -
Séquences immuables : collections de tuples.
-
carte modifiable : collection dict. -
Cartes immuables : il n'y a pas de cartes figées intégrées.
Les bibliothèques de Python fournissent de nombreuses implémentations supplémentaires de ces types de collections de base.
-
nommé etuple : Tuple. Chaque élément du tuple peut recevoir un nom. L'utilisation de rgb_color.red est légèrement plus propre que rgb_color[0]. -
deque : file d'attente double. Il s'agit d'une séquence modifiable avec l'optimisation supplémentaire de pousser et de sauter à chaque extrémité. Les listes offrent des fonctionnalités similaires, mais les deques sont plus efficaces. -
defaultdict : dictionnaire. Des valeurs par défaut peuvent être fournies pour les clés manquantes. -
Compteur : Dictionnaire. Peut être utilisé pour compter le nombre d'occurrences d'une clé. Parfois appelé multiset ou sac. -
OrdereDict : Dictionnaire. L'ordre dans lequel les clés ont été créées est conservé. -
ChainMap : Dictionnaire. Combinez plusieurs dictionnaires en une seule carte.
-
Array : la structure de liste de Python est un tableau typique et offre des performances similaires à une liste chaînée de tableaux. -
Arbre : les structures arborescentes peuvent être utilisées pour créer des ensembles, des listes ordonnées ou des cartes clé-valeur, et les arbres peuvent être considérés comme une technique de mise en œuvre plutôt qu'une structure de données avec un ensemble unique de fonctionnalités. -
Hachage : Python utilise des hachages pour implémenter des dictionnaires et des ensembles, qui sont rapides mais gourmands en mémoire. -
graph : Python n'a pas de structure de données graphique intégrée. Mais la structure du graphe peut facilement être représentée comme un dictionnaire, où chaque nœud a une liste de nœuds adjacents.