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))

Probar solución en Google Colab

Fuente del ejercicio: https://allendowney.github.io/ThinkPython/chap10.html#exercise