Análisis del ejercicio 3. nombres no repetidos (Conjuntos)

Utilizar Conjuntos

Enunciado

El programa cuenta con dos listas de nombres:

lista_1=["luis","gonza","sara","laura","toni","juan","manu","nano","sara","luis"]

lista_2=["santi","cora","ana","sara","toni","carmen","lino","nano","nacho","luis"]

Se crearán las siguientes funciones:

  • Función que reciba ambas listas y retorne un conjunto con los nombres únicos de ambas listas.

  • Función que reciba ambas listas y retorne los nombres que están en ambas listas.

  • Función que reciba el conjunto de la función anterior y un nombre cualquiera y elimine del conjunto el nombre.

  • Función que reciba conjunto y un nombre cualquiera y lo añade al conjunto, la función regresa True si lo ha podido añadir y False en caso contrario.

Análisis:

  • Crear las listas.

  • Función que cree el conjunto de datos, con las dos listas.

  • Función que me devuelva los nombres que están en ambas listas (intersección).

  • Función que permita eliminar del conjunto creado, un nombre

  • Función que añade un nombre, y debe devolver cierto o falso en caso que el nombre ya exista.

Diagrama

Código

# Función localizar valores únicos
def valoresúnicos(lista1, lista2):
    resultado=set(lista1) | set(lista2)
    return resultado
# Datos que están en ambas listas

def nombres_ambaslistas(lista1, lista2):
    interseccion= set(lista1) & set(lista2)
    return interseccion
# Elimar un nombre deñ conjunto
def eliminar_nombre(conjunto, nombre):
    if nombre not in conjunto:
        print('no se puede eliminar, el nombre no existe')
    else:
        conjunto.discard(nombre)

    return conjunto
# Introducir un nombre al conjunto 
def anadir_nombre(conjunto, nombre):

    if nombre in conjunto:
        valor= False
    conjunto.add(nombre)
    valor=True
    return valor
# Inicializao las listas dadas en el enunciado
lista_1=["luis","gonza","sara","laura","toni","juan","manu","nano","sara","luis"]
lista_2=["santi","cora","ana","sara","toni","carmen","lino","nano","nacho","luis"]

# SVisualizo los valores únicos
print("Valores únicos: ",valoresúnicos(lista_1, lista_2))
# Visualizo los valores que están an ambas listas
print("Valores comunes:",nombres_ambaslistas(lista_1, lista_2))
# Creo el un conjunto con los valores de ambas listas
conjunto=nombres_ambaslistas(lista_1, lista_2)
#Pido al usauiro el nombre a eliminar
nombre_eliminar=input("Dame el nombre a eliminar: ")
#Elimino y visualizo el conjunto resultado
print( eliminar_nombre( conjunto , nombre_eliminar) )
# Pido un nombre al usuario y lo almacena en el conjunto 
nombre_añadir=input("Dame el nombre a añadir:")
#Visualizo si añado o no en fucnión del valor True o False
if anadir_nombre(conjunto, nombre_añadir):
    print(nombre_añadir, " se ha podido añadir al cojunto")
else:
    print("No se ha añadido el nombre ya existe")
#Visualizo el conjunto Final   
print("Conjunto Final", conjunto)

Última actualización

¿Te fue útil?