Python - Compresión de listas

 
Vista:
sin imagen de perfil
Val: 23
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

Compresión de listas

Publicado por Candela (9 intervenciones) el 25/11/2020 00:03:42
Buenas!! estudiando un poco el tema de listas he descubierto las compresiones y he intentado hacer todos mis ejercicios de listas con ellas, pero hay uno que se me hace bastante dificil. El problema es sencillo sacar la union de dos listas.

Este es mi programa:

1
2
3
4
5
6
7
def union(lista1, lista2):
    data=lista1+lista2
    resultado=[]
    for i in data:
        if i not in resultado:
            resultado.append(i)
    return(resultado)

Con la interseccion se me ha hecho bastante sencillo, pero este no logro sacarlo. Agradezco cualquier tipo de ayuda y explicacion, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Compresión de listas

Publicado por joel (901 intervenciones) el 25/11/2020 08:33:19
Hola Candela, viendo tu código parece que es correcto... lo único que te diría, es que el return no es necesario utilizar paréntesis...

Yo lo he probado y me ha funcionado!!

1
print(union([1,2,3], [1,2,3,4])) # [1, 2, 3, 4]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 23
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

Compresión de listas

Publicado por Candela (9 intervenciones) el 25/11/2020 16:39:50
Si creo que el codigo funcionaba, pero me preguntaba si existía alguna forma de reducirlo o no hacerlo en tantas lineas (algo tipo list comprehension). De todas formas muchas gracias por tu respuesta!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Compresión de listas

Publicado por Daniel (111 intervenciones) el 25/11/2020 18:07:22
Hola,

Una opción es usar programación funcional, el problema se puede resolver en una línea

1
2
3
4
from functools import reduce
 
data = [1, 2, 3] + [1, 2, 3, 4]
union = reduce(lambda array, item: array if item in array else array + [item], data, [])

Saludos,
Daniel Rodríguez
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Compresión de listas

Publicado por tincopasan (1082 intervenciones) el 25/11/2020 19:02:18
se puede como compresion de listas como tal, sin bibliotecas externas, solo es necesario una función propia de python:

1
2
3
4
5
6
lista1 = [1,2,3,4,5]
lista2 =[3,5,6,8]
 
union = [x for x in set(lista1 + lista2)]
 
print(union)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Compresión de listas

Publicado por joel (901 intervenciones) el 26/11/2020 07:55:40
Muy bueno tincospan, pero no seria necesario el bucle for...

1
2
3
4
lista1 = [1,2,3,4,5]
lista2 =[3,5,6,8]
 
union=list(set(lista1+lista2))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Compresión de listas

Publicado por tincopasan (1082 intervenciones) el 26/11/2020 15:58:07
pero entonces deja de ser comprension de listas! que es lo que plantea en el pedido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Compresión de listas

Publicado por Daniel (111 intervenciones) el 26/11/2020 18:45:08
Hola,

Una opción para usar solamente compresiones seria crear los elementos de la segunda lista que no están en la primera y concatenarla a la primera lista.

1
2
3
4
lista1 = [1,2,3,4,5]
lista2 = [3,5,6,8]
 
union = lista1  + [x for x in lista2 if x not in lista1]

Saludos,
Daniel Rodríguez
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar