16 - Listas: mayor y menor elemento

Es una actividad muy común la búsqueda del mayor y menor elemento de una lista.
Es necesario que la lista tenga valores del mismo tipo por ejemplo enteros. Pueden ser de tipo cadenas de caracteres y se busque cual es mayor o menor alfabéticamente, pero no podemos buscar el mayor o menor si la lista tiene enteros y cadenas de caracteres al mismo tiempo.

Problema 1:

Crear y cargar una lista con 5 enteros. Implementar un algoritmo que identifique el mayor valor de la lista.

Ver video

Programa: ejercicio80.py

lista=[]
for x in range(5):
    valor=int(input("Ingrese valor:"))
    lista.append(valor)

mayor=lista[0]
for x in range(1,5):
    if lista[x]>mayor:
        mayor=lista[x]

print("Lista completa")
print(lista)
print("Mayor de la lista")
print(mayor)

Primero procedemos a cargar por teclado los 5 valores en la lista:

for x in range(5):
    valor=int(input("Ingrese valor:"))
    lista.append(valor)

Para identificar el mayor de una lista primero tomamos como referencia el primer elemento, considerando a este en principio como el mayor de la lista:

mayor=lista[0]

Seguidamente disponemos un for que se repita 4 veces esto debido a que no debemos controlar el primer elemento de la lista (recordar que la primer vuelta del for x toma el valor 1, luego el 2 y así sucesivamente hasta el 4):

for x in range(1,5):

Dentro del for mediante una estructura condicional verificamos si el elemento de la posición x de la lista es mayor al que hemos considerado hasta este momento como mayor:

    if lista[x]>mayor:
        mayor=lista[x]

Como vemos en las dos líneas anteriores si el if se verifica verdadero actualizamos la variable mayor con el elemento de la lista que estamos analizando.

Cuando finaliza el for procedemos a mostrar el contenido de la variable "mayor" que tiene almacenado el mayor elemento de la lista:

print("Mayor de la lista")
print(mayor)

Problema 2:

Crear y cargar una lista con 5 enteros por teclado. Implementar un algoritmo que identifique el menor valor de la lista y la posición donde se encuentra.

Programa: ejercicio81.py

Ver video

lista=[]
for x in range(5):
    valor=int(input("Ingrese valor:"))
    lista.append(valor)

menor=lista[0]
posicion=0
for x in range(1,5):
    if lista[x]<menor:
        menor=lista[x]
        posicion=x

print("Lista completa")
print(lista)
print("Menor de la lista")
print(menor)
print("Posicion del menor en la lista")
print(posicion)

Iniciamos una lista vacía y cargamos 5 elementos enteros:

lista=[]
for x in range(5):
    valor=int(input("Ingrese valor:"))
    lista.append(valor)

Para identificar el menor y la posición de dicho valor en la lista definimos dos variables. La primera le cargamos el primer elemento de la lista, que es el que consideramos como menor hasta este momento:

menor=lista[0]

Por otro lado la segunda variable almacena un cero que es la posición donde se encuentra el menor hasta este momento:

posicion=0

Seguidamente disponemos un for que se repita 4 veces (que son la cantidad de elementos que nos faltan analizar de la lista):

for x in range(1,5):

Dentro del for mediante un if verificamos si el elemento que estamos analizando de la lista es menor a la variable "menor":

    if lista[x]<menor:

En caso que sea menor a la que hemos considerado "menor" hasta este momento procedemos a actualizar la variable "menor" con el nuevo valor y también actualizamos la variable "posicion" con el valor del contador del for que nos indica que posición de la lista estamos analizando:

        menor=lista[x]
        posicion=x

Cuando salimos del for mostramos la lista completa, el menor de la lista y la posición que tiene en la lista dicho menor:

print("Lista completa")
print(lista)
print("Menor de la lista")
print(menor)
print("Posicion del menor en la lista")
print(posicion)

Problemas propuestos

  • Ingresar por teclado los nombres de 5 personas y almacenarlos en una lista. Mostrar el nombre de persona menor en orden alfabético.

    Ver video

  • Cargar una lista con 5 elementos enteros. Imprimir el mayor y un mensaje si se repite dentro de la lista (es decir si dicho valor se encuentra en 2 o más posiciones en la lista)

    Ver video

Solución
ejercicio82.py

nombres=[]
for x in range(5):
    nom=input("Ingrese nombre de persona:")
    nombres.append(nom)

nombremenor=nombres[0]
for x in range(1,5):
    if nombres[x]<nombremenor:
        nombremenor=nombres[x]

print("La lista completa de nombres ingresado son")
print(nombres)
print("El nombre menor en orden alfabetico es:")
print(nombremenor)




ejercicio83.py

lista=[]
for x in range(5):
    valor=int(input("Ingrese valor:"))
    lista.append(valor)

mayor=lista[0]
for x in range(1,5):
    if lista[x]>mayor:
        mayor=lista[x]

print("Lista completa")
print(lista)
print("Mayor de la lista")
print(mayor)

# contamos cuantas veces se encuentra el mayor en la lista
cantidad=0
for x in range(5):
    if lista[x]==mayor:
        cantidad=cantidad+1
if cantidad>1:
    print("El mayor se repite en la lista")