Le but de cette mission est de développer un outil qui permet un utilisateur de chercher répétitivement dans un fichier de texte: pour des mots donnés, l'outil va imprimer les phrases dans lesquelles tous les mots donnés sont présents. Pour assurer que l'outil ne prend pas trop de temps pour déterminer ces phrases, on va construire un index des mots présents dans les phrases des documents. On utilisera les dictionnaires pour stocker l'index.
La matière relative à cette mission est décrite dans les sections suivantes du syllabus en ligne :
Les questions à choix multiples de cette mission sont également accessibles en ligne depuis https://inginious.info.ucl.ac.be/course/LSINF1101-PYTHON/Session7_QCM
Considérez le code suivant:
codes = {"Bruxelles" : [1000,1020,1030], "Louvain-la-Neuve" : [1348], "Wavre": [1300,1301]}
Les morceaux de code ci-dessous sont executés chacun après ce code. Décrivez ce qui se passe pour chacun des cas.
print(codes["Bruxelles"])
print(codes["Mons"])
print(codes[1000])
print(codes.get("Mons",[]))
codes["Liege"] = [4000] print(codes)
codes["Bruxelles"].append(1040) print(codes)
codes.get("Bruxelles",[]).append(1050) print(codes)
codes.get("Arlon",[]).append(8362) print(codes)
if "Bruxelles" in codes: print("Found!") else: print("Not found!")
if 1000 in codes: print("Found!") else: print("Not found!")
for x in codes: print(x)
for x in codes: print(codes[x])
for x in codes.items(): print(x)
for x, y in codes.items(): y = y + [2000] print(codes)
for x, y in codes.items(): y.append(2000) print(codes)
for x, y in codes.items(): x = x + "*" print(codes)
Considérez le code suivant:
def mot_ligne(ligne): d = {} for mot in ligne: d[mot] = 1 return d
Quelle est la taille du dictionnaire résultant des appels suivants ? Pourquoi ?
Écrivez une fonction avec la spécification suivante:
def create_index ( list_of_words ): """ crée un index pour une liste de chaînes de caractères. L'index se compose d'un dictionnaire dans lequel pour chaque chaîne de caractères dans list_of_strings on retrouve une liste des positions où l'on retrouve cette chaîne de caractères. Par exemple, pour la liste ["the","galaxy","and","the","universe","are","the","same"] Le résultat est {"the":[0,3,6],"galaxy":[1],"and":[2],"universe":[4], \ "are":[5],"same":[7]} Args: list_of_words: une liste de chaînes de caractères Retourne: un dictionnaire avec pour chaque mot dans la liste, une liste des positions de cette chaîne de caractères dans la liste """
Étant donnée:
Par exemple,
l = [ [ 0, 2, 4 ], [ 4, 1, 0 ] ] d = { (0,1): 2, (0,2): 4, (1,0): 4, (1,1): 1 }
Écrivez une fonction equal(l,d) qui détermine si d contient les même valeurs pour chaque élément de l. (Nous permettons que d soit plus large que l.)
Étant donné une structure de données comme la suivante:
Écrivez une fonction get_country(l,name) qui, pour le nom d'une ville name et une structure de données l du format illustré dans l'exemple, retourne le nom du pays dans lequel la ville est localisée. La fonction retourne None si la ville n'est pas dans l.