LES DICTIONNAIRES




Bac à sable

monDico = {"marque": "Porsche", "modèle": "Cayenne", "année": 2017}
print(monDico)
print(monDico["modèle"])
monDico["kilometrage"]=12500
print(monDico)
monDico["année"]=2015
print(monDico)
for clef in  monDico.keys():
	print(clef)

Patronyme

Le fichier patronyme.csv contient contient les noms attribués au moins 30 fois de 1891 à 2000 en France . ( source INSEE )

Les commandes ci-dessous, permettent à partir du fichier csv de créer un dictionnaire PATRONYMES avec pour clef, le nom et pour valeur, le nombre d'attribution depuis 1891.

Créer un fichier patronymes.py contenant le code ci-dessous :

import csv
#Ouverture du fichier csv
lecture =csv.reader(open("patronymes.csv", newline=''))
#Construction du dictionnaire
PATRONYMES={}
for elt in lecture:
    PATRONYMES[elt[0]]=int(elt[1])
    
    

print(len(PATRONYMES))

print(PATRONYMES["FOURLEGNIE"])




Demander à Python :
  1. Combien de fois votre nom a t-il été attribué depuis 1891 ?
  2. Combien y a t-il de DUPOND ?
  3. Combien y a t-il de DUPONT ?
  4. Combien y a t-il de TINTIN ?
  5. Combien y a t-il de MILOU ?
  6. Combien y a t-il de HADDOCK ?

Remarque : La dernière manip provoqe une erreur ( KeyError) , on dit que python léve un exception.

Comment gérer une exception prévisible ?

try :

	code exécuté si tout va bien

except :

	code exécuté en cas d'exception

Tester le code ci-dessous :
NOM='HADDOCK'
try : 
    PATRONYMES[NOM]
except KeyError:
    print("le nom " + NOM + " n'est pas  dans le dictionnaire")
  1. Combien y a t-il de patronymes ?
  2. Compléter la fonction ci-dessous :
  3.  
    	def AJOUTER(NOM):
    		"""
    		Ajoute 1 à la valeur correspondant à la cle NOM 
    		Si NOM n'est pas présent, il est alors ajouté au dictionnaire.
    		param NOM: (str)
    		return PATRONYMES : (dict)
    		"""
    
    		return PATRONYMES
    
  4. Tester avec les commandes :
  5. >>> AJOUTER('HADDOCK')
    >>> PATRONYMES('HADDOCK')
    >>> PATRONYMES["ALCAZAR"]
    >>> AJOUTER("ALCAZAR")
    >>> PATRONYMES["ALCAZAR"]
    

  1. Compléter la fonction ci-dessous :
  2.  
    	def NOM_POPULAIRES():
    		"""
    		Renvoie un dictionnaire des NOMS  qui ont été attribué plus de 50000 fois.
    		param : None
    		return populaire : (dict)
    		C.U : Le dictionnaire PATRONYMES doit avoir été déclaré
    		populaire={}
    		"""
    		return populaire
    
  3. Quel est le patronyme le plus populaires ?
  4. Quels sont les 10 noms les plus populaires ?