Compruebe si el elemento está en una matriz / lista
203
Si tengo una serie de cadenas, ¿puedo verificar si hay una cadena en la matriz sin hacer un forbucle? Específicamente, estoy buscando una manera de hacerlo dentro de una ifdeclaración, así que algo como esto:
@jdi, y ese ciclo se ejecutará mucho más rápido que el codificado explícitamente en Python, sin mencionar que es más fácil de leer.
Mark Ransom
17
También voy a suponer que te refieres a "lista" cuando dices "matriz". La solución de Sven Marnach es buena. Si va a realizar comprobaciones repetidas en la lista, puede valer la pena convertirlo en un conjunto o conjunto congelado, que puede ser más rápido para cada comprobación. Asumiendo que su lista de strs se llama subjects:
subject_set = frozenset(subjects)if query in subject_set:# whatever
Esto funciona con Python2. Con Python 3.7, obtendrá este error:TypeError: object of type 'filter' has no len()
Jun711
1
Tienes que usar .values para las matrices. por ejemplo, digamos que tiene un marco de datos que tiene un nombre de columna, es decir, prueba ['Nombre'], puede hacer
Respuestas:
Suponiendo que quiere decir "lista" donde dice "matriz", puede hacer
Esto funciona para cualquier colección, no solo para listas. Para los diccionarios, verifica si la clave dada está presente en el diccionario.
fuente
También voy a suponer que te refieres a "lista" cuando dices "matriz". La solución de Sven Marnach es buena. Si va a realizar comprobaciones repetidas en la lista, puede valer la pena convertirlo en un conjunto o conjunto congelado, que puede ser más rápido para cada comprobación. Asumiendo que su lista de strs se llama
subjects
:fuente
Utiliza una función lambda.
Digamos que tienes una matriz:
Compruebe si 5 está en
nums
:Esta solución es más robusta. Ahora puede verificar si hay algún número que satisfaga una determinada condición en su matriz
nums
.Por ejemplo, verifique si existe algún número mayor o igual a 5 en
nums
:fuente
TypeError: object of type 'filter' has no len()
Tienes que usar .values para las matrices. por ejemplo, digamos que tiene un marco de datos que tiene un nombre de columna, es decir, prueba ['Nombre'], puede hacer
para una lista normal no tiene que usar .values
fuente
También puede usar la misma sintaxis para una matriz. Por ejemplo, buscando dentro de una serie de Pandas:
fuente