elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [PYTHON] Saber si un elemento esta en una matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [PYTHON] Saber si un elemento esta en una matriz  (Leído 11,140 veces)
Yidu

Desconectado Desconectado

Mensajes: 133


Ver Perfil
[PYTHON] Saber si un elemento esta en una matriz
« en: 8 Abril 2015, 19:34 pm »

Hola.

Antes de postear he dudado en hacerlo. Porque supongo que la solución será muy fácil. Pero por más que le doy vueltas no doy con la tecla.

Para saber si un elemento esta en una lista o vector, solo hemos de hacer así:

Código
  1. num = 4
  2. lista = [1,2,3,4,5]
  3. num in lista

Y nos devuelve True.

¿Pero como hacerlo 'fácil' si hemos de hacer la comprobación en una matriz?

Código
  1. num = 4
  2. matriz = [[1,2,3],[4,5,6],[7,8,9]]
  3. num in lista

Logicamente nos devolverá False. Ya que comprobará el número 4 con una lista o vector entero.

Hacer esto, no lo veo del todo bien:

Código
  1. num in matriz[0] or num in matriz[1] or num in matriz[2]

Y si usamos un ciclo For, como el número a comprobar esta en matriz[1], nos devolverá False. Ya que la variable de control del For se detendrá en matriz[2]. Y como allí no esta el 4, dará False.

La pregunta, es, ¿Cómo enfocarlo en estos casos?


Bueno, saludos!


« Última modificación: 8 Abril 2015, 19:37 pm por Yidu » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: [PYTHON] Saber si un elemento esta en una matriz
« Respuesta #1 en: 8 Abril 2015, 19:59 pm »

¿Pero como hacerlo 'fácil' si hemos de hacer la comprobación en una matriz?

Código
  1. num = 4
  2. matriz = [[1,2,3],[4,5,6],[7,8,9]]
  3. num in lista

Para determinar si un valor se encuentra en el interior de ese array dimensional hay varias maneras de hacerlo, una manera simple sería utilizando la función any:

Código
  1. value = 4
  2. arr2D = [
  3.           [1, 2, 3],
  4.           [4, 5, 6],
  5.           [7, 8, 9]
  6.        ]
  7.  
  8. print any(value in arr for arr in arr2D)

https://docs.python.org/2/library/functions.html#any

Saludos


« Última modificación: 8 Abril 2015, 20:04 pm por Eleкtro » En línea

Yidu

Desconectado Desconectado

Mensajes: 133


Ver Perfil
Re: [PYTHON] Saber si un elemento esta en una matriz
« Respuesta #2 en: 9 Abril 2015, 19:19 pm »

¡Muchas gracias! Que simple. Con las vueltas que le dí. Tendré que echar mas de un vistazo a las built-ins. En todo caso me equivoque en esta línea:

Código
  1. num = 4
  2. matriz = [[1,2,3],[4,5,6],[7,8,9]]
  3. num in lista # Aquí debería haber puesto:


Código
  1. num in matriz

Tu línea la he modificado para Python 3:

Código
  1. print (any(value in arr for arr in arr2D))

Por si alguien usa esta versión y le da error. Supongo que otra forma sería definiendo nosotros la función. Como cita en el ejemplo del enlace que has posteado.

¡Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines