Ejercicios 2

1 Ejercicio

Escribir una función que reciba como parámetro una lista de elementos y devuelva el valor True si la lista posee elementos y False en caso contrario.


In [2]:
def tieneElementos(milista):
    return len(milista) > 0
print(tieneElementos([]))
print(tieneElementos([1, 3, 96]))


False
True

2 Ejercicio

Dada la lista $L = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]$, escribe expresiones en Python que produzcan los siguientes resultados:

  1. El primer elemento de la lista.
  2. El último elemento de la lista (Sin conocer la longitud de la lista).
  3. La sublista con los dos últimos elementos. (Sol: [8, 9])
  4. La sublista de los elementos que ocupan posiciones pares. (Sol: [1, 3, 5, 7, 9])
  5. La sublista de los elementos que ocupan posiciones impares. (Sol: [2, 4, 6, 8])

In [28]:
# Sol: 
l = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
print(l[0])
print(l[-1])
print(l[-2], l[-1])
print(l[-2:])
print()
print(l[::2])
print(l[1::2])
print()
print(len(l)-1)


1
9
8 9
[8, 9]

[1, 3, 5, 7, 9]
[2, 4, 6, 8]

8

3 Ejercicio

Dada una lista de enteros $a$ y un número entero $n$, define:

  1. una función que calcule el número de veces que se repite $n$ en $a$.
  2. una función que calcule el porcentaje de veces que se repite $n$ en $a$.

Nota: utiliza los métodos len y count.

  • Puedes ejecutar list.count? para obtener ayuda del método count.
  • Puedes ejecutar help(list.count) para obtener ayuda del método count.

In [30]:
# Sol:
# Definimos la lista 'a'
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 4, 6, 8, 1, 4]
# Definimos la función 'repeticiones()' tomando como base los valores de la lista 'a'
def repeticiones(a):
# mediante a.count(valor) recorremos la lista 'a' para comproobar cuantas veces se repite un valor determinado
    return a.count(4)
# Mostramos el resultado
print('El número 4 se repite',repeticiones(a),'veces en la lista',a)

# En base a la lista 'a' antes definida, pasamos a averiguar el nº de elementos de la lista para calcular
# que porcentaje de veces se repite el número 'n'
def porcentaje(a):
    nelementos = len(a)
    nrepeticiones = a.count(4)
    return nrepeticiones / nelementos * 100
print("Lo que supone un",porcentaje(a),'%')


# el 4 se repite 3 veces en la lista [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 4, 6, 8, 1, 4]
# lo que supone un  18.75 %


El número 4 se repite 3 veces en la lista [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 4, 6, 8, 1, 4]
Lo que supone un 18.75 %

4 Ejercicio

Utiliza la función range para generar listas de elementos. Genera de forma automática las siguientes lista: [10, 20, 30, 40, 50, 60, 70, 80, 90]


In [33]:
# Sol:
# Creamos una variable 'lista' cuyo rango empieza en 10 y acaba en 100, con un salto de 10.
# Su expresión matemática sería [10,100) donde se incluye el 10(inicio), pero no el 100(fin)
# de ahí que se muestre [10, 20, 30, 40, 50, 60, 70, 80, 90]
lista = range(10,100,10)
list(lista)


Out[33]:
[10, 20, 30, 40, 50, 60, 70, 80, 90]

5 Ejercicio

El método upper del tipo string genera una nueva cadena de caracteres, donde todos los caracteres son mayúsculas. Dada la siguiente cadena:

'Hola, me llamo Iñigo Montoya, tú mataste a mi padre. ... Prepárate a morir'

  • Genera la cadena en mayúsculas
  • Ejecuta el método split. ¿Qué hace?
  • Escribe la expresión Python que calcula el número de palabras de la cadena.
  • Ejecuta el método lower.
  • Ejecuta el método title.
  • Ejecuta dir(str) para listar los métodos disponibles.

In [44]:
# Sol: 
# Definimos la cadena como 's'
s = 'Hola, me llamo Iñigo Montoya, tú mataste a mi padre ...Prepárate a morir!'
# Definimos una nueva cadena como 'sMayus' para capitalizar todas las letras, como no podemos modificar una cadena
# debemos crear una nueva y modificar esta en función de la cadena original
sMayus = s.upper()
# Mostramos el resultado
print(sMayus)
# Modificamos el valor de 's' y lo ponemos todo en minúsculas
print(s.lower())
s, sMayus


HOLA, ME LLAMO IÑIGO MONTOYA, TÚ MATASTE A MI PADRE ...PREPÁRATE A MORIR!
hola, me llamo iñigo montoya, tú mataste a mi padre ...prepárate a morir!
Out[44]:
('Hola, me llamo Iñigo Montoya, tú mataste a mi padre ...Prepárate a morir!',
 'HOLA, ME LLAMO IÑIGO MONTOYA, TÚ MATASTE A MI PADRE ...PREPÁRATE A MORIR!')