Python - Numero de veces que se repite cada elemento de una lista en otra lista

 
Vista:

Numero de veces que se repite cada elemento de una lista en otra lista

Publicado por Cristo (7 intervenciones) el 04/11/2019 16:55:04
Hola. Tengo el siguiente programa el cuál toma como parámetros dos listas de números enteros. La función modifica la segunda lista sustituyendo cada elemento por una tupla en la que esté el elemento original acompañado del número de veces que aparece en la primera lista. El problema de mi código es que su
1
output
es [4, 0, 5]

input: a = [1, 3, 4, 7, 8, 3, 10, 12, 3, 14, 15] b = [4, 0, 5]

output: b = [(4, 1), (0, 0), (5, 3)]

1
2
3
4
5
6
import func
 
lista1 = [1, 3, 4, 7, 8, 3, 10, 12, 3, 14, 15]
lista2 = [4, 0, 5]
func.ejemplo(lista1, lista2)
print(cuenta_numeros)


1
2
3
4
5
6
7
import itertools
def ejemplo(lista1, lista2):
    nueva_lista = list()
    for i1, i2 in itertools.zip_longest(lista1, lista2):
        cuenta = numbers.count(i1)
        nueva_lista.append(lista1[i1], lista2[i2])
    return nueva_lista
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

Numero de veces que se repite cada elemento de una lista en otra lista

Publicado por joel (901 intervenciones) el 04/11/2019 17:43:36
Hola Cristo, no entiendo muy bien el ejemplo que indicas...
el resultado no tendria que ser:
output: b = [(4, 1), (0, 0), (5, 0)]

ya que el 5 no aparece ninguna vez en la primera lista, no?


Prueba este código:
1
2
3
4
lista1 = [1, 3, 4, 7, 8, 3, 10, 12, 3, 14, 15]
lista2 = [4, 0, 5]
 
print(list(map(lambda x: (x,lista1.count(x)), lista2)))
Devuelve:
1
[(4, 1), (0, 0), (5, 0)]
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

Numero de veces que se repite cada elemento de una lista en otra lista

Publicado por Cristo (7 intervenciones) el 04/11/2019 18:07:14
En efecto, he cometido un error al indicar el output del código. La solución propuesta por usted estaría bien, pero habría alguna otra forma de realizar el problema planteado. Por ejemplo usado bucles de iteración o métodos tales como zip o zip_longest
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Numero de veces que se repite cada elemento de una lista en otra lista

Publicado por joel (901 intervenciones) el 04/11/2019 20:18:33
Con un bucle, seria así:
1
2
3
4
5
6
7
lista1 = [1, 3, 4, 7, 8, 3, 10, 12, 3, 14, 15]
lista2 = [4, 0, 5]
 
resultado=[]
for i in lista2:
    resultado.append((i,lista1.count(i)))
print(resultado)
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