Saltar a contenido

7. Diccionarios II#

(★☆☆, ★★☆, ★★★) Esta notación indica la dificultad de cada ejercicio, de menor a mayor.

  1. ★☆☆ ¿Cual de los siguientes no es un método de diccionarios?

    1. get
    2. keys
    3. sort
    4. clear
  2. ★☆☆ Imprima por pantalla las claves de un diccionario

  3. ★☆☆ Imprima por pantalla los valores de un diccionario.

  4. ★☆☆ Escriba una función que recibe un número y devuelve un diccionario cuyas claves son desde el número 1 hasta el número indicado, y los valores sean los cuadrados de las claves.

  5. ★☆☆ Escriba una función que recibe una cadena y devuelve un diccionario con la cantidad de apariciones de cada carácter en la cadena.

  6. ★☆☆ Escribir un programa que guarde el diccionario {'Euro':'€', 'Dollar':'$', 'Yen':'¥'} en una variable, pregunte al usuario por una divisa y muestre su símbolo por pantalla, o un mensaje de aviso si la divisa no está en el diccionario.

  7. ★☆☆ Escribir una función que reciba una lista de tuplas, y que devuelva un diccionario en donde las claves sea el primer elemento de la tupla y el valor el segundo, asumir que nunca estarán repetidas las claves. Por ejemplo:

    >>> l = [ ('papa', 3), ('cebolla', 479),('radicheta', 1) ]
    >>> print(lista_de_tuplas_a_diccionario(l))
    { 'papa': 3, 'cebolla': 479 , 'radicheta': 1 }
    
  8. ★☆☆ Escribir una función que reciba una lista de tuplas, y que devuelva un diccionario en donde las claves sean los primeros elementos de las tuplas, y los valores una lista con los segundos. Por ejemplo:

    >>> l = [ ('Hola', 'don Pepito'), ('Hola', 'don Jose'),('Buenos', 'días') ]
    >>> print(tuplas_a_diccionario(l))
    { 'Hola': ['don Pepito', 'don Jose'], 'Buenos': ['días'] }
    
  9. ★☆☆ Escribir una función que reciba la cantidad de iteraciones a realizar de una tirada de 2 dados y devuelva la cantidad de veces que se observa cada valor de la suma de los dos dados.

    Tip

    Utilizar el módulo random para obtener tiradas aleatorias.

    >>> print(frecuencia_de_tiradas(9))
    { '2': 1, '5': 3 , '6': 2, '9': 2, '13': 1}
    
  10. ★☆☆ Implementamos una agenda con un diccionario, donde almacenamos nombres y números telefónicos. Escribir un programa que vaya solicitando al usuario que ingrese nombres, luego:

    1. Si el nombre se encuentra en la agenda, debe mostrar el teléfono y, opcionalmente, permitir modificarlo si no es correcto.
    2. Si el nombre no se encuentra, debe permitir ingresar el teléfono correspondiente.

    El usuario puede utilizar la cadena ”*”, para salir del programa.

  11. ★★☆ El bit de paridad sirve como mecanismo para detectar errores. Dado un byte (8 bits), se utilizan 7 para representar el dato, y el bit restante se pone en 1 si la cantidad de bits en 1 era impar y se pone en 0 en caso contrario. De esta manera, si se recibe un byte y el bit de paridad no es el esperado, se sabe que hubo un error en la transmisión.

    Cree una función que reciba una lista de strings con 7 bits y devuelva un diccionario donde estos strings sean las claves y el parity bit el valor.

    >>> print(parity_bit(["0110100","1011010"]))
    { '0110100': 1, '1011010': 0 }
    
  12. ★★★ En una realidad alternativa la red de subterráneos de Buenos Aires está compuesta por 4 líneas, A, C, D y E. Cada línea tiene 3 estaciones, y nunca hace falta hacer más de un cambio de línea para ir de una estación a otra. Los siguientes diccionarios describen la red:

    subtes = ["A", "C", "D", "E"]
    estaciones = {
        "A": ["Acoyte", "Avenida de Mayo", "Callao"],
        "C": ["Avenida de Mayo", "Congreso", "Urquiza"],
        "D": ["Pellegrini", "Urquiza", "Callao"],
        "E": ["Pellegrini", "Lima", "Avenida de Mayo"]
    }
    
    1. Escribir una función que reciba una estación y devuelva las líneas que pasan por esa estación.
    2. Escribir una función que pida al usuario una estación de origen y otra de destino e indique qué línea tomar para ir de una a otra. Si no hay conexión directa, debe indicar cuáles son las estaciones de conexión.