Dictionnaire, Tuple et Ensemble


  1. Les dictionnaires: Création et fonctions prédéfinies
  2. Parcourt d’un dictionnaire
  3. Échanger les clés et les valeurs d’un dictionnaire
  4. Dictionnaire des fréquences d’une chaine
  5. Histogramme à l’aide d’un dictionnaire
  6. Remplissage et consultation d’un dictionnaire
  7. Les tuples: création et méthodes prédéfinies
  8. Ensemble: création et méthodes prédéfinies
  9. Parcourt d’un ensemble
  10. Copier un ensemble
  11. Différence symétrique

Les dictionnaires: Création et fonctions prédéfinies

##########les fonction est méthodes prédéfinies d'un dictionnaire###########
 
###création d'un dictionnaire  Article1 de trois éléments, chaque élément est sous forme d'un couple: Clef,Valeur
Article1={'Référence':12154,'désignation':'Clavier','prix':25.5}
 
###création d'un dictionnaire  Article2 de trois éléments, chaque élément est sous forme d'un couple: Clef,Valeur
Article2={}
Article2['Référence']=31654
Article2['désignation']='Souris'
Article2['prix']=30.25
 
###la fonction len comme les listes permet de retourner le nombre d'éléments d'un dictionnaire
len(Article1) # résultat retourné est 3.
 
###la fonction del pour supprimer un élément d'un dictionnaire
 
del Article['prix'] # résultat: Article1={'Référence':12154,'désignation':'Clavier'}
 
###teste si une clé existe dans un dictionnaire
 
'prix' in Article1 # résultat: False
 
###la méthode keys() retourne la liste des clés d'un dictionnaire
 
list(Article2.keys()) # résultat retourné: ['Référence','désignation','prix']
 
###la méthode values() retourne la liste des valeurs d'un dictionnaire
 
list(Article2.values()) # résultat retourné: ['31654','Souris',30.25]
 
###la méthode items() retourne la liste des éléments d'un dictionnaire
 
list(Article2.items()) # résultat retourné:  [('prix', 30.25), ('désignation', 'Souris'), ('Référence', 31654)]
 
###la méthode copy() permet d'effectuer une copie d'un dictionnaire
 
Article3=Article2.copy() # Article3={'prix': 30.25, 'désignation': 'Souris', 'Référence': 31654}
 
#. Il faut savoir en effet que la simple affectation d’un dictionnaire existant à une nouvelle variable crée seulement une nouvelle référence vers le même objet, et non un nouvel objet c-a-d si on utilise Article3 = Article2 et si on change Article2, Article1 sera changé aussi.

Exercice 1: Parcourt d’un dictionnaire

Parcourt d’un dictionnaire: Programme Python qui permet de parcourir un dictionnaire et d’afficher ses éléments.

Exemple d’exécution:

Pour le dictionnaire Article={ ‘Référence’: 31654 , ‘désignation’: ‘Souris’ , ‘prix’: 30.25}:

les éléments de ce dictionnaire (sous format clef->valeur) sont:

‘Référence’ -> 31654
‘désignation’ -> ‘Souris’
‘prix’ -> 30.25


Exercice 2: Échanger les clés et les valeurs d’un dictionnaire

Échanger les clés et les valeurs d’un dictionnaire: Écrivez une fonction Python echange(Dict) qui échange les clés et les valeurs d’un dictionnaire Dict (ce qui permettra par exemple de transformer un dictionnaire anglais/français en un dictionnaire français/anglais). On suppose que le dictionnaire ne contient pas plusieurs valeurs identiques.

Exemple d’exécution:

>>>Article={ ‘Référence’: 31654 , ‘désignation’: ‘Souris’ , ‘prix’: 30.25}
>>>Article=echange(Article)
>>>Article
{‘Souris’: ‘désignation’, 31654: ‘Référence’, 30.25: ‘prix’}


Exercice 3: Dictionnaire des fréquences d’une chaine

Dictionnaire des fréquences d’une chaine: Script en Python qui permet de Créer le dictionnaire des fréquences d’une chaine, saisie par l’utilisateur, (avec l’association clef = caractère, valeur = nombre d’apparitions du caractère dans la chaîne) puis qui il afficher le dictionnaire par ordre croissant de fréquences.

Pour cela:

  • Créer une fonction count_car(ch,c) qui retourne le nombre d’apparitions du caractère c dans la chaîne ch.
  • Créer une fonction Dictinnaire_frequence(chaine) qui retourne le dictionnaire des fréquences d’une chaine
  • Créer une fonction affichage_frequence(chaine) qui afficher le dictionnaire par ordre croissant de fréquences

Exemple d’exécution:

Entrer une chaine de caractère: lepython_point_com
h   est apparue 1 fois
m  est apparue 1 fois
l    est apparue 1 fois
i    est apparue 1 fois
e   est apparue 1 fois
c   est apparue 1 fois
y   est apparue 1 fois
t    est apparue 2 fois
_   est apparue 2 fois
n   est apparue 2 fois
p   est apparue 2 fois
o  est apparue 3 fois


Exercice 4: Histogramme à l’aide d’un dictionnaire

Histogramme à l’aide d’un dictionnaire: Écrivez une fonction Python Histogramme(texte) qui retourne un dictionnaire représentant la fréquence d’utilisation de chacune des lettres de l’alphabet dans un texte donné.

En utilisant la fonction  Histogramme(texte), Écrivez un script Python qui affiche l’histogramme (le dictionnaire) dans l’ordre alphabétique d’un texte saisi par l’utilisateur.

Exemple d’exécution:

Entrer un texte: les saucisses et saucissons secs sont dans le saloir

[(‘ ‘, 8), (‘a’, 4), (‘c’, 3), (‘d’, 1), (‘e’, 5), (‘i’, 3), (‘l’, 3), (‘n’, 3), (‘o’, 3), (‘r’, 1), (‘s’, 14), (‘t’, 2), (‘u’, 2)]


Exercice 5: Remplissage et consultation d’un dictionnaire

Remplissage et consultation d’un dictionnaire: Écrivez un script qui crée un mini-système de base de données fonctionnant à l’aide d’un dictionnaire, dans lequel vous mémoriserez les noms d’une série des élèves, leur âge et leur taille.

Dans le dictionnaire, le nom de l’élève servira de clé d’accès, et les valeurs seront constituées de tuples (âge, taille), dans lesquels l’âge sera exprimé en années (donnée de type entier), et la taille en mètres (donnée de type réel).

Votre script devra comporter deux fonctions :

  • La fonction remplissage() qui permet de remplir le dictionnaire, les données du dictionnaires seront saisies par l’utilisateur.
  • La fonction consultation(). Dans la fonction de consultation permet de consulter les information (le couple « âge, taille » ) relatives au nom de l’élève fournit par l’utilisateur. Le résultat de la requête devra être une ligne de texte bien formatée, telle par exemple : « Nom : Jean Dhoute – âge : 15 ans – taille : 1.74 m ».

Exemple d’exécution:

Entrer le nom de l’élève Jean Dhoute
Entrer l’age de Jean Dhoute 15
Entrer la taille de Jean Dhoute 1.74

Voulez vouz ajouter un autre élève. O/N? : N

Entrer le nom de l’élève à consulter: Jean Dhoute

Nom :Jean Dhoute – âge : 15 ans – taille : 1.74 m

Entrer le nom de l’élève à consulter: Jean-Paul

l’éléve Jean-Paul n’existe pas


Les tuples: création et méthodes prédéfinies

Un tuple est comme une liste sauf qui ne peut plus être modifiée. Donc un tuple est une séquence des éléments non modifiables.

pour créer un tuple on utilise les parenthèses et comme les liste, l’accès aux élément d’un tableau se fait avec leurs indice

Exemple de création et manipulation des tuples:

t=() # tuple vide
 
t=(4,) #initier un tuple avec une seule valeur
 
t+=(2,5,7,8) # concaténation t vaut (4,2,5,7,8)
 
t[2] #affiche 5
 
t[2]=3 # Va provoquer une erreur car les tuples est non modifiable
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-19-8ae953d958b6> in <module>()
----> 1 t[2]=3
 
TypeError: 'tuple' object does not support item assignment
 
t=(4,1,5,2,3,9,7,2,8)
 
t[2:5] # résultat retourné: (5, 2, 3)
 
t[:5] # résultat retourné: (4, 1, 5, 2, 3)
 
t[3:] # résultat retourné: (2, 3, 9, 7, 2, 8)
 
t[:3]+(10,)+t[4:] # résultat retourné: (4, 1, 5, 10, 3, 9, 7, 2, 8)
 
l=list(range(5)) # l est une liste qui vaut [0, 1, 2, 3, 4]
 
t=tuple(l) # tuple une fonction qui permet de convertir en tuple, t donc est un tuple qui vaut (0, 1, 2, 3, 4)
 
ch='localhost/lepython_sauvegarde'
 
t=tuple(ch) # t est un tuple qui vaut ('l', 'e', 'p', 'y', 't', 'h', 'o', 'n', '.', 'c', 'o', 'm')
 
len(t) # résultat retourné : 12

Ensembles: création et méthodes prédéfinies

Un ensemble est une structure de données qui contient des éléments non ordonnés, sans répétition et sans numérotation donc pas de notion d’indice comme mes liste ou les tuples. Les éléments d’un ensemble peuvent être de type: entier, réel, chaine de caractères ou tuple donc pas de liste, de dictionnaire ou d’ensemble comme élément d’un ensemble.

>>>E=set() # creation d'un ensemble vide
>>>E={1,3} # création d'un ensemble E de deux élémments : 1 et 3
>>>{1,2,3}=={2,3,1}
True # car pas d'ordre dans les ensemble 
>>>E=set('azerty')
>>>E
{'a', 'e', 'r', 't', 'y', 'z'}
>>>E.add('e')
>>>E
{'a', 'e', 'r', 't', 'y', 'z'} # pas de changement car l'élément 'e' déjà existe dans la liste E(les éléments d'une liste sont unique)
>>> E = {x*x for x in range(20) if x % 3 == 0} # en utilisant les compréhension
>>> E
{0, 9, 36, 81, 144, 225, 324}
>>>len(E) # nombre des éléments d'un ensemble E
7
>>>E={[4,3]} # Erreur car seulement les entiers, les réels, les chaine de caractères et les tuples peuvent être des éléments d'un ensemble.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-19-9b1fb6129d19> in <module>()
----> 1 e={'a',5,5.5,(4,5),[4,6]}
 
TypeError: unhashable type: 'list'
 
>>>E={2,4,6,9}
>>>2 in E # teste l'existence d'un élément dans un ensemble
True
>>>5 in E
False
>>>5 not in E
True
>>>{4,9} <= {3,4,7,9} # teste si l'ensemble {4,9} inclus ou égale l'ensemble {3,4,7,9} True >>>{2,4,6,9} & {3,4,7,9} # l'intersection
{4,9}
>>>{2,4,6,9} | {3,4,7,9} # l'union
{2,3,4,6,7,9}
>>>{2,4,6,9} - {3,4,7,9} # la différence
{2,6}
>>>{2,4,6,9} ^ {3,4,7,9} # la différence symétrique: équivalent à {2,4,6,9} - {3,4,7,9} | {3,4,7,9} - {2,4,6,9}
{2, 3, 6, 7}
>>>E={2,4,6,9}
>>>E1=E.copy() # Copier E dans un nouveau ensemble E1 (ne pas utiliser E1=E car E et E1 ont même réference et donc n'importe quel changement effectué sur E sera effectué aussi sur E1 et inversement
>>>E.pop() # supprime le premier élément de E et retourne l'élément supprimé
2
>>>E
{4,6,9}
>>>E.remove(9) # supprime l'élément 9 de E si 9 existe sinon il va générer une erreur (KeyError)
>>>E
{4,6}
>>>E.discard(6) # supprime l'élément 6 de E si 6 existe
>>>E
{4,6}

Exercice 6: Parcourt d’un ensemble

Parcourt d’un ensemble: Écrire un programme python qui affiche tous les éléments d’un ensemble. Les éléments de l’ensemble sont des entiers saisis par l’utilisateurs.

Exemple d’exécution:

Entrer l’élément 1 : 4
Voulez vous ajouter d’autre éléments O/N: O
Entrer l’élément 2 : 5
Voulez vous ajouter d’autre éléments O/N: O
Entrer l’élément 3 : 2
Voulez vous ajouter d’autre éléments O/N: O
Entrer l’élément 4 : 8
Voulez vous ajouter d’autre éléments O/N: N
les éléments de l’ensemble E sont: 8,2,4,5,


Exercice 7: Copier un ensemble

Copier un ensemble: Écrire une fonction Python copier( E ) qui permet de retourner la copie de l’ensemble E  sans utiliser la méthode E.copy() avec E est un ensemble passé en paramètre.

Remarque:

E.copy() ou la fonction copier( E ) retourne un nouveau ensemble de référence différent que celle de E.

>>>E={2,4,1}

>>>id(E) # id(objet) retourne l’identifiant (la référence) d’un objet

77073024

>>>E1=E

>>>id(E1)

77073024

>>>E2=E.copy() # on copie l’ensemble E dans E2

>>>id(E2)

77189168

  • Vous remarquez que E1 a le même identifiant que E par contre E2 a un identifiant différent.
  • Si on modifie l’ensemble E ces modifications seront appliquer aussi sur E1

Exemple d’exécution:

>>>E={2,4,1}
>>>E1=copier( E )
>>>E1
{2,4,1}


Exercice 8: Différence symétrique

Différence symétrique: Écrire une fonction diff_sym( E1, E2) qui retourne la différence symétrique de deux ensembles E1 et E2 en utilisant les opérateurs ensemblistes prédéfinis par Python et en exploitant directement la propriété de différence symétrique :

E1 Δ E2 = (E1 \ E2) ∪ (E2 \ E1)

Exemple d’exécution:

>>>E1={3,5,6,7}
>>>E2={4,3,7,9}
>>>diff_sym(E1,E2)
{4, 5, 6, 9}


Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Résoudre : *
1 × 18 =