Python - tener 2 listas y generar una tercera lista con elementos

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

tener 2 listas y generar una tercera lista con elementos

Publicado por Ani (21 intervenciones) el 24/06/2021 01:10:43
Dadas dos listas pobladas con elementos de tipo carácter, se pide generar una tercera sólo con los elementos que estén repetidos en ellas. Considerar que la nueva lista no contenga elementos duplicados.

se lo agradecería si me pudieran ayudar:(
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 Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

tener 2 listas y generar una tercera lista con elementos

Publicado por Francisco Javier (313 intervenciones) el 24/06/2021 01:24:20
Bueno esto es sencillo solo declarando dos ciclos for en los arreglos. Espero te sirva y sea lo que andas buscando.
Un saludo y ya me cuentas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding: utf-8 -*-
#!/usr/bin/python
 
 
lista_1=['casa','edificio','lapiz','pelota','tabla','canica','consola','juguete','moto','goma']
lista_2=['muñeca','tren','canica','peonza','lapiz','colchoneta','toalla','monopatin','ordenador']
 
def comprobar_repetidos(lista_a,lista_b):#funcion que le damos como argumentos las 2 listas dadas
    lista_elementos_repetidos=[]#creamos un lista donde incluiremos los elementos repetidios en las listas
    for i in lista_a:#recorremos uno a uno la primera lista
        for j in lista_b:#recorremos uno a uno la segunda lista
            if i==j:#si un elemento de la lista primera es igual a un elemnto de la segunda lista....
                lista_elementos_repetidos.append(i)#lo incluimos en la lista de elementos repetidos
    print(lista_elementos_repetidos)
 
 
comprobar_repetidos(lista_1,lista_2)
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: 105
Ha aumentado su posición en 28 puestos en Python (en relación al último mes)
Gráfica de Python

tener 2 listas y generar una tercera lista con elementos

Publicado por Ani (21 intervenciones) el 24/06/2021 01:29:41
lo probé y me funciono, muchísimas gracias, me ha ayudado demasiado, se lo agradezco :)
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

tener 2 listas y generar una tercera lista con elementos

Publicado por tincopasan (1082 intervenciones) el 24/06/2021 04:11:35
Bueno, como supongo ya entregó la tarea, veamos:
Una cosa importante, en python no existen los arreglos, son listas de listas, para "arreglos" ,vectores o matrices se usa la biblioteca numpy

Planteo:
Dadas dos listas pobladas con elementos de tipo carácter, se pide generar una tercera sólo con los elementos que estén repetidos en ellas. Considerar que la nueva lista "no contenga elementos duplicados."

modifico las listas para que tengan en ellas elementos repetidos

lista_1=['casa','edificio','lapiz','pelota','tabla','canica','consola','juguete','moto','goma','goma','canica']

lista_2=['goma','muñeca','tren','canica','peonza','lapiz','colchoneta','toalla','monopatin','ordenador','goma']

si uso tu función devuelve:

['lapiz', 'canica', 'goma', 'goma', 'goma', 'goma', 'canica']

que a toda vista no cumple con la consigna que no tenga elementos duplicados en la lista resultante.

se podría solucionar con:

1
2
3
4
5
6
7
8
9
def comprobar_repetidos(lista_a,lista_b):
 
    lista_elementos_repetidos=[]
    for i in lista_a:
        for j in lista_b:
            if i==j:
                if i not in lista_elementos_repetidos:  # verificamos que no se encuentre en la lista
                    lista_elementos_repetidos.append(i)
    print(lista_elementos_repetidos)

pero... para los que quieren aprender comprensión de listas esto se reduce a:

1
2
3
4
def repetidos(a,b):
    return   list(set([i for i in a for j in b if i==j ]))
 
print(repetidos(lista_1,lista_2))


Las funciones usan return para devolver un valor, los print como retorno de la función son una mala práctica.

Y otra forma, es directamente con la función de conjuntos provista por python:

1
2
3
4
def repite(a,b):
    return list(set(a) & set(b))
 
print(repite(lista_1,lista_2))

varias formas de llegar a lo mismo, con menos código u operaciones del procesador.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

tener 2 listas y generar una tercera lista con elementos

Publicado por Francisco Javier (313 intervenciones) el 24/06/2021 08:14:28
Exacto a esto me v refería cuando hablaba de su v experiencia, muchas v gracias
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