Python - Comprobar elementos en una lista

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

Comprobar elementos en una lista

Publicado por Xordy (18 intervenciones) el 10/11/2018 01:56:42
Hola, pues sigo con mis practicas y aprendiendo python. Ahora estaba intentando crear una programa que reciba dos listas de datos, y compruebe si hay datos repetidos y en caso afirmativo que muestre estos por pantalla.

Por lo que veo, aun me falta entender bien la secuencia de bucles for anidados y condicionales ya que me da que el error esta porque no soy capaz de darle forma ya que he probado opciones y me muestra los valores repetidos pero los muestra tantas veces como pasos da en el bucle...

Os pego mi codigo a ver como he de solucionarlo.

1
2
3
4
5
6
7
8
9
10
11
12
def compruebaPosicion(l1,l2):
	tmp=[]
	for i in lista1:
		for j in lista2:
			if i in lista2:
				tmp.append(i)
	return tmp
 
lista1=['h','b','c','d','f','g']
lista2=['e','i','o','d','a','c']
 
print(compruebaPosicion(lista1,lista2))

Este es el resultado:

['c', 'c', 'c', 'c', 'c', 'c', 'd', 'd', 'd', 'd', 'd', 'd']
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
sin imagen de perfil
Val: 765
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Comprobar elementos en una lista

Publicado por dario (185 intervenciones) el 10/11/2018 04:13:06
Hola, hice algunos arreglos a tu codigo, estudialo y te daras cuenta porque el tuyo esta mal.
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def compruebaPosicion(l1,l2):
    tmp=[]
    for i in range(len(l1)):
        for j in range(len(l2)):
            if l1[i] == l2[j]:
                tmp.append(l1[i])
 
    return tmp
 
 
 
lista1=['h','b','c','d','f','g']
lista2=['e','i','o','d','a','c']
 
print(compruebaPosicion(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
1
Comentar
sin imagen de perfil
Val: 35
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Comprobar elementos en una lista

Publicado por Xordy (18 intervenciones) el 10/11/2018 11:10:08
Ufff ya vi las diferencias entre mi código y el tuyo...

Veo que me falta mucho por aprender sobre bucles animados, condicionales y demás cosas básicas.

Bueno iré practicando con tu código diferentes ejercicios para trabajar con listas a ver si soy capaz de entenderlo y que me funcione.

Gracias por la ayuda.
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

Comprobar elementos en una lista

Publicado por tincopasan (1082 intervenciones) el 10/11/2018 04:50:16
todo esto está bien si querés entender y practiar con for pero python ayuda a hacerlo más fácil:
1
2
3
4
5
6
lista1=['h','b','c','d','f','g']
lista2=['e','i','o','d','a','c']
 
a,b= set(lista1),set(lista2)
 
print(a&b)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Xavi
Val: 666
Bronce
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Comprobar elementos en una lista

Publicado por Xavi (47 intervenciones) el 10/11/2018 09:24:07
Muy bueno!!!
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: 35
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Comprobar elementos en una lista

Publicado por Xordy (18 intervenciones) el 10/11/2018 11:12:45
Que forma de reducir código a la mínima expresión.
Me lo guardo para un futuro, pero de momento prefiero teclear código para aprender y dentro de unos años a ver si soy capaz de reducir a ese nivel.

Muchas gracias.
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
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Comprobar elementos en una lista

Publicado por kip (257 intervenciones) el 10/11/2018 15:18:10
Hola, puedes usar for no tiene nada de malo, algo así por ejemplo:

1
2
3
4
>>> lista1=['h','b','c','d','f','g']
>>> lista2=['e','i','o','d','a','c']
>>> print([i for i in lista1 if i in lista2])
['c', 'd']

Esto funciona porque no tienes duplicidad de datos en las listas, es decir 2 veces 'c' por ejemplo, ya que de esa forma te devolverá algo asi:

1
2
>>> print([i for i in lista1 if i in lista2])
['c', 'c', 'd']

Puedes usar la estructura de datos de elementos únicos con la función set() y de esa forma no tendrás la duplicidad.

La verificación que hice mas arriba no es por posición por cierto, es solo por valor, no se si es eso lo que buscas.
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
sin imagen de perfil
Val: 35
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Comprobar elementos en una lista

Publicado por Xordy (18 intervenciones) el 12/11/2018 18:22:01
Hola, la verdad es que no hago la busqueda por posicion, sino por valor, de momento estoy empezando con cosas basicas, y de ahi pues intentare algo mas.... pero de momento lo basico.

Muchas gracias.
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