Ejercicios 5

1 Ejercicio

Dado el diccionario de las ciudades más pobladas de Italia ciudades:

d = { 1: 'Roma', 2: 'Milán', 3:'Nápoles', 4:'Turín', 5:'Palermo' ,6: 'Génova', 7:'Bolonia', 8:'Florencia', 9:'Bari', 10:'Catania'}

y la lista pob que contiene información de la cantidad de población en cada ciudad:

pob = [2718768, 1299633, 973132, 908263, 663173, 610887, 372256, 364710, 322511, 298957]

  • crea un nuevo diccionario donde cada elemento sea de la forma

i: [ciudad,poblacion]

Nota: Utiliza listas por comprensión. La función enumerate también te puede ayudar.


In [15]:
pob = [2718768, 1299633, 973132, 908263, 663173, 610887, 372256, 364710, 322511, 298957]
d = { 1: 'Roma', 2: 'Milán', 3:'Nápoles', 4:'Turín', 5:'Palermo' ,6: 'Génova', 7:'Bolonia', 8:'Florencia', 9:'Bari', 10:'Catania'}
# Sol
# El primer elemento ha de ser 1: ['Roma', 2718768]
cpob = { i : [ ciudad, pob[ i - 1 ] ] for i, ciudad in d.items() }
cpob


Out[15]:
{1: ['Roma', 2718768],
 2: ['Milán', 1299633],
 3: ['Nápoles', 973132],
 4: ['Turín', 908263],
 5: ['Palermo', 663173],
 6: ['Génova', 610887],
 7: ['Bolonia', 372256],
 8: ['Florencia', 364710],
 9: ['Bari', 322511],
 10: ['Catania', 298957]}

2 Ejercicio

Los 15 primeros números triangulares son:

$$ [0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105] $$

Define una función triang_1 que reciba un número entero positivo $n$ como parámetro y genere la lista de los $n$ primeros números triangulares. Resuelve el problema aplicando la fórmula $a_n = n * (n + 1) / 2$. Utiliza listas por comprensión.


In [4]:
# Sol:
def triang_3(n):
    return [int(i*(i+1)/2) for i in range(n)]
triang_3(3)


Out[4]:
[0, 1, 3]