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?