Bonjour, je dois créer une fonction caracteres_occurrences(l) qui retourne un dictionnaire contenant pour chaque caractère dans les différentes chaînes de caractères les indices des chaînes qui contiennent le caractère au moins une fois.
Par exemple, avec la liste : l = ["ceci n'est pas une pipe", "le fils de l'homme", "golconda"] , la fonction doit me renvoyer le dictionnaire :
d = {'c': [0,2], 'e': [0,1], 'i': [0,1], ' ': [0,1], 'n': [0,2], "'": [0,1], 's': [0,1], 't': [0], 'p': [0], 'a': [0,2], 'u': [0], 'f': [1], 'l': [1,2], 'd': [1,2], 'h': [1], 'o': [1,2], 'm': [1], 'g': [2]}
-> le 'c' se retrouve au moins une fois dans l[0] et dans l[2] ; le 'e' se retrouve au moins une fois dans l[0] et dans l[1], ...
Le problème est qu'avec mon code, la fonction ne me renvoie que le dernier indice de la liste dans lequel le caractère se retrouve :
=> me renvoie : {'c': [2], 'e': [1], 'i': [1], ' ': [1], 'n': [2], "'": [1], 's': [1], 't': [0], 'p': [0], 'a': [2], 'u': [0], 'l': [2], 'f': [1], 'd': [2], 'h': [1], 'o': [2], 'm': [1], 'g': [2]}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 def caracteres_occurences(l) : d = {} long = len(l) for i in range (long) : for j in l[i] : d[j] = [i] return d
Comment faire pour prendre en compte tous les indices ?
Partager