You are not logged in.

Computer Science in 1ère

The forum to cure all your computer anxieties

#1 12-Jan-2020 16:31:47

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Dictionnaire

Un dictionnaire lie une "clé" à un "objet" de sorte que :


>>> dico:Dict = {1:'a', 2:'b', 3:'c'}
>>> dico[2]
b
>>> dico['a']
erreur
 

N'y a-t-il pas un type qui permet de lier 2 objets pour que ça marche dans les deux sens ? Faut-il créer nous même notre classe ou existe-t-il déjà une ?


>>> Machin = {1:'a', 2:'b', 3:'c'}
>>> Machin[2]
b
>>> Machin['a']
2
 

Y a-t-il une classe pour donner ça ?

Offline

#2 12-Jan-2020 19:31:10

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Dictionnaire

Et pourquoi voudrait-on que cela marche dans les 2 sens ? Il n'y a pas de raison a priori. Les clés doivent être uniques et immutables car elles permettent de repérer des valeurs dans une collection. On peut imaginer par exemple un dictionnaire des genres :


genre = {'Joe': 'M'. 'Max': 'M', 'Gertrud': 'F', 'Gunther': 'M', 'Dolores': 'F'}
 

Les rôles des clés et des valeurs ne sont pas symétriques.

Sinon, pour savoir à quelle(s) clé(s) est associée une certaine valeur, on peut créer une fonction :


>>> Machin = {1:'a', 2:'b', 3:'c'}

>>> def les_cles(dic, val): return {cle for cle in dic if dic[cle] == val}

>>> les_cles(Machin, 'a')
{1}

>>> genre = {'Joe': 'M', 'Max': 'M', 'Gertrud': 'F', 'Gunther': 'M', 'Dolores': 'F'}

>>> les_cles(genre, 'F')
{'Dolores', 'Gertrud'}
 

Offline

#3 12-Jan-2020 21:10:25

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Re: Dictionnaire

Imaginons il y a eu un concours, il y a donc un numéro 1, un numéro 2...
Donc un dictionnaire tel que :

Classement:Dico = {1:’Patrick’, 2:’Michel’, 3:‘Germaine’}

 

Donc si on veut savoir le premier, on fait :

Dico[1]

 

Mais si à l’inverse, on veut savoir combien a fini Germaine, on ne peut pas directement, on est obligée de faire :


def chercher(dico:Dict, nom):
     return {placement for placement in dico if dico[placement] == nom}
 

Remarque maintenant que j’y pense c’est plus simple d’utiliser une liste.

Offline

#4 12-Jan-2020 22:34:20

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Dictionnaire

...oui...Les dictionnaires sont utiles notamment quand il s'agit d'indexer des valeurs avec autre chose que des nombres.

Offline

#5 15-Jan-2020 14:59:56

Albin pichon
Member
Registered: 16-Sep-2019
Posts: 5

Re: Dictionnaire

Bonjour tout le monde il faut faire un Sway pour demain mais je ne sais pas ce que c’est j’ai  fait des recherches et la seule chose que j’ai trouvée c’est une nouvelle application de Microsoft (office Sway)
Si quelqu’un peut me renseigner je veux bien .
Merci.

Offline

#6 15-Jan-2020 15:54:25

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Dictionnaire

Albin, il ne faut pas poster ses lettres n'importe où ! Ce fil concerne les dictionnaires !

Offline

#7 15-Jan-2020 17:06:09

Albin pichon
Member
Registered: 16-Sep-2019
Posts: 5

Re: Dictionnaire

D’accord, désolé, la prochaine fois je créerais une nouvelle rubrique.

Offline

Board footer

Powered by FluxBB