Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: flony en 3 Noviembre 2021, 02:02 am



Título: contar elementos de dos listas en python
Publicado por: flony en 3 Noviembre 2021, 02:02 am
hola comunidad como estan mi problema es el siguiente tengo dos listas la primera seria la de las variables que corre de 0 a 35 y la segunda una lista mas grande, donde salen al azar estas variables, me gustaria saber como almacenar la cuenta de esas variables.
les dejo lo que voy haciendo.
quiero saber cuantos 1 hay cuantos dos etc
Código:
lista1=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]

lista2=[1,2,3,
1,4,5,1,6,7,1,8,9,2,0,0,1,5,8,2,3,7,5,6,10,6,7,11,0,0,0,1,6,7,5,6,12,5,7,8,
4,12,1,6,12,0,3,5,6,0,0,0,5,10,12,3,6,11,5,6,8,13,0,0,7,12,14,2,0,0,1,14,15,1,5,6,4,5,16,
9,17,18,5,6,10,8,17,0,3,5,6,0,0,0,6,8,0,3,6,0,19,0,0,20,21,22,5,23,24,1,5,6,3,4,5,3,5,7,
2,4,12,1,5,7,1,8,18,0,0,0,17,18,20,2,5,18,6,16,25,0,0,0,1,7,0,1,4,18,0,0,0,1,5,6,26,27,28,
2,5,8,1,5,29,1,6,8,1,5,6,1,2,12,0,0,0,6,15,30,1,6,5,6,11,0,1,6,18,6,12,20,0,0,0,7,0,0,
0,0,0,1,5,24,7,8,0,1,5,21,1,6,31,1,5,30,12,0,0,1,6,20,0,0,0,5,6,11,1,15,32,33,34,35,
6,1,14,1,5,6,
]
for i in lista2 :
    for j in lista1:
        if i=j:


Título: Re: contar elementos de dos listas en python
Publicado por: Danielㅤ en 3 Noviembre 2021, 04:13 am
Hola, podrías hacerlo de esta forma:

Código
  1. lista1=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]
  2.  
  3. cantidadUnoLista1 = str(lista1).count("1")
  4. print("La variable \"lista1\" contiene %d números 1" % cantidadUnoLista1)
  5. # Salida:
  6. # La variable "lista1" contiene 14 números 1
  7.  

Código
  1. lista2 = [1,2,3,
  2. 1,4,5,1,6,7,1,8,9,2,0,0,1,5,8,2,3,7,5,6,10,6,7,11,0,0,0,1,6,7,5,6,12,5,7,8,
  3. 4,12,1,6,12,0,3,5,6,0,0,0,5,10,12,3,6,11,5,6,8,13,0,0,7,12,14,2,0,0,1,14,15,1,5,6,4,5,16,
  4. 9,17,18,5,6,10,8,17,0,3,5,6,0,0,0,6,8,0,3,6,0,19,0,0,20,21,22,5,23,24,1,5,6,3,4,5,3,5,7,
  5. 2,4,12,1,5,7,1,8,18,0,0,0,17,18,20,2,5,18,6,16,25,0,0,0,1,7,0,1,4,18,0,0,0,1,5,6,26,27,28,
  6. 2,5,8,1,5,29,1,6,8,1,5,6,1,2,12,0,0,0,6,15,30,1,6,5,6,11,0,1,6,18,6,12,20,0,0,0,7,0,0,
  7. 0,0,0,1,5,24,7,8,0,1,5,21,1,6,31,1,5,30,12,0,0,1,6,20,0,0,0,5,6,11,1,15,32,33,34,35,
  8. 6,1,14,1,5,6]
  9.  
  10. cantidadUnoLista2 = str(lista2).count("1")
  11. print("La variable \"lista2\" contiene %d números 1" % cantidadUnoLista2)
  12. # Salida:
  13. # La variable "lista2" contiene 71 números 1
  14.  

Conviertes a string tus listas y usando la función count() podes contar la cantidad de números repetidos en cada variable.

Nos comentas que si te ha funcionado.


Saludos


Título: Re: contar elementos de dos listas en python
Publicado por: Xyzed en 4 Noviembre 2021, 04:41 am
Hola.

Ya que ví que usas un bucle para realizar tu código, te adjunto algo similar a lo que hizo @Daniel, pero con un for.

Código
  1. lista1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]
  2. numero = input("Ingresa el número a validar: ")
  3. total = 0
  4. for x in str(lista1):
  5.    if x == numero:
  6.        total = total+1
  7. print(f"Cantidad total de '{numero}' repetido(s): {total}")
  8.  
  9. #"Numero" es el input donde debes ingresar el número a contar.
  10. #Si el número es 5 por ejemplo, te devolverá: Cantidad total de '5' repetido(s): 5
  11.  


Título: Re: contar elementos de dos listas en python
Publicado por: Serapis en 4 Noviembre 2021, 15:37 pm
Si requieres una solución óptima, olvida pasar valores numéricos a string...

Hay una forma más sencilla y eficiente de conseguir el objetivo, simplemente rediseñando ligeramente lo que hay que hacer y como hacerlo.

Lista1, en vez de contener los valores 1 al 35, y dado que son valores contínuos... lo lógico es que su propósito sea el de contar.
Entonces el asunto se resuelve así:

Código:
Lista1(0 a 35)  #La lista1 inicialmente contiene valor 0, para cada uno de sus 36 elementos.

bucle para k desde 0 hasta lista2.length
    lista1(lista2(k)) += 1   # incrementa la cantidad  de apariciones con cada valor.
next
...y eso es todo. Luego podrás imprimir la cantidad a apariciones de cualquier valor, si fuera por ejemplo las veces que aaprece el 19:
Código:
    imprimir lista1(19)


Título: Re: contar elementos de dos listas en python
Publicado por: flony en 5 Noviembre 2021, 23:35 pm
gracias a todos me voy a poner a ver las opciones