Ejercicios 3

1 Ejercicio

Escribe una expresión Python para recuperar el valor del elemento con clave 'Hola' del un diccionario d.

  • Comprueba que si d es {} la ejecución produce un error.
  • ¿ Y si d es {'Hola': ['Hi','Hello'], 'Adios': ['Bye']} ?

In [10]:
d1 = { }
d2 =  {'Hola': ['Hi','Hello'], 'Adios': ['Bye'] }
# Sol: 

d2['Hola']


Out[10]:
{}

2 Ejercicio

Dados dos diccionarios d1 y d2, escribe una función en Python llamada fusion que realice la fusión de los dos diccionarios pasados como parámetros. Puedes utilizar la función update.

  • Prueba la función con los diccionarios d1 = {1: 'A', 2:'B', 3:'C'}, d2 = {4: 'Aa', 5:'Ba', 6:'Ca'}

  • Utiliza la función len para recuperar el número de elementos del nuevo diccionario

  • Prueba la función con los diccionarios d1 = {1: 'A', 2:'B', 3:'C'}, d2 = {2: 'Aa', 3:'Ba'}

  • Utiliza la función len para recuperar el número de elementos del nuevo diccionario


In [39]:
# Sol:
def fusion():
    d1 = {1: 'A', 2:'B', 3:'C'}
    d2 = {4: 'Aa', 5:'Ba', 6:'Ca'}
    d1.update(d2)
    return d1
fusion()


Out[39]:
{1: 'A', 2: 'B', 3: 'C', 4: 'Aa', 5: 'Ba', 6: 'Ca'}

3 Ejercicio

Dada la lista de las ciudades más pobladas de Italia it:

it = [ 'Roma', 'Milán', 'Nápoles', 'Turín', 'Palermo' , 'Génova', 'Bolonia', 'Florencia', 'Bari', 'Catania']

  • Crea un diccionario donde la clave sea la posición que ocupa cada ciudad en la lista. Para hacerlo sigue estas indicaciones:
    • Crea una secuencia de enteros mediante la función range. El inicio de la secuencia es el cero y el fin de la secuencia es la longitud de la lista de poblaciones de Italia.
    • Crea una lista m de tuplas del tipo (pos, ciudad). Utiliza la función zip.
    • Utiliza la función dict para construir el diccionario a partir de la lista m.
  • Escribe una expresión Python para recuperar la quinta ciudad italiana más poblada.

In [115]:
# Sol:
# Definimos la lista con las ciudades que aparece en el enunciado
it = [ 'Roma', 'Milán', 'Nápoles', 'Turín', 'Palermo' , 'Génova', 'Bolonia', 'Florencia', 'Bari', 'Catania', 'Verona']
# Definimos una variable para almacenar una lista que crearemos a partir de un rango [0, longitud de la lista)
# Si no especificamos inicio, el rango comienza en 0 y termina en 10
# Si se especifica el inicio en 1, hay que sumarle +1 a la longitud de la lista a modo de offset
pos_ciudad = range(1, len(it)+1)
resultado = list(zip(pos_ciudad, it))
resultado


Out[115]:
[(1, 'Roma'),
 (2, 'Milán'),
 (3, 'Nápoles'),
 (4, 'Turín'),
 (5, 'Palermo'),
 (6, 'Génova'),
 (7, 'Bolonia'),
 (8, 'Florencia'),
 (9, 'Bari'),
 (10, 'Catania'),
 (11, 'Verona')]

In [116]:
dic = dict(resultado)
dic


Out[116]:
{1: 'Roma',
 2: 'Milán',
 3: 'Nápoles',
 4: 'Turín',
 5: 'Palermo',
 6: 'Génova',
 7: 'Bolonia',
 8: 'Florencia',
 9: 'Bari',
 10: 'Catania',
 11: 'Verona'}