es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Incluso los valores de las listas en un conjunto.

Aquí está la tarea y código dado:

Escribir una función even_value_set(list1, list2, list3), que recibe tres listas que contienen elementos enteros como argumentos. La función crea y devuelve un conjunto que contiene todos los elementos con valor par de las tres listas.

def test():
    l = [[],[],[]]

for i in range(3):
    for j in range(random.randint(7,14)):
        l[i].append(random.randint(1,35))
    print ("Lista" + str(i + 1) +":",l[i])

print ("")
s = even_value_set(l[0],l[1],l[2])
print ("Tipo de retorno:", str(type(s)).replace("<","").replace(">",""))
print ("Conjunto solo con valores pares:", end = "")
print (set(sorted(list(s))))

test()

import random

Intenté usando .union() y hacer agregando listas en otra antes de convertirlas en conjuntos, pero no tuve suerte.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para resolver este problema, puede crear un conjunto vacío llamado even_set e iterar a través de cada lista usando un bucle anidado. Dentro del bucle, puede verificar si el elemento actual es par usando el operador módulo % para verificar si el resto después de dividir por 2 es 0. Si es par, puede agregarlo al even_set. Finalmente, puede devolver el even_set.

    Aquí hay una implementación de la función even_value_set:

    def even_value_set(list1, list2, list3):
        even_set = set()
        for lst in [list1, list2, list3]:
            for item in lst:
                if item % 2 == 0:
                    even_set.add(item)
        return even_set
    

    Esta función funciona iterando sobre cada lista y luego sobre cada elemento en la lista. Si el elemento es par, lo agrega al even_set. Después de verificar todos los elementos en todas las listas, devuelve el even_set final.

    Puede probar esta función usando el código de prueba proporcionado:

    def test():
        l = [[],[],[]]
    
        for i in range(3):
            for j in range(random.randint(7,14)):
                l[i].append(random.randint(1,35))
            print ("Lista" + str(i + 1) + ":",l[i])
    
        print ("")
        s = even_value_set(l[0],l[1],l[2])
        print ("Tipo de retorno:", str(type(s)).replace("<","").replace(">",""))
        print ("Conjunto con valores pares solamente:", end = "")
        print (set(sorted(list(s))))
    
    test()
    
    import random
    

    Esto debería producir un conjunto que contenga solo los valores pares de las tres listas.

Comments are closed.