Frecuencia de Letras
Descripción
Los diccionarios tienen un método llamado get
, el cual toma una llave y un valor por default. Si la llave aparece en el diccionario, get
devuelve el valor asociado. De otra forma devuelve el valor por default.
La función value_counts
desarrollada en el capítulo sobre diccionarios devuelve un diccionario que asocia las letras de una palabra con la cantidad de veces que aparecen en ella.
counter = value_counts('brontosaurus')
Si buscamos una letra que sí aparece en la palabra, get
devuelve el número de veces que aparece.
counter.get('b', 0)
1
Si buscamos una letra que no aparece en la palabra, get
devuelve el valor por default, que en este caso es cero.
counter.get('c', 0)
0
Usa la función get
para crear una versión más corta de la función value_counts
mostrada en el capítulo sobre diccionarios, en la que no uses la instrucción if
Ejemplo de Ejecución:
print(value_counts('brontosaurus'))
{'b': 1, 'r': 2, 'o': 2, 'n': 1, 't': 1, 's': 2, 'a': 1, 'u': 2}
Solución
Mostrar solución
def value_counts_original_version(string):
counter = {}
for letter in string:
if letter not in counter:
counter[letter] = 1
else:
counter[letter] += 1
return counter
def value_counts(string):
counter = {}
for letter in string:
counter[letter] = counter.get(letter, 0) + 1
return counter
w = 'brontosaurus'
print(value_counts_original_version(w))
print(value_counts(w))
Fuente del ejercicio: https://allendowney.github.io/ThinkPython/chap10.html#exercise