Si tengo una serie de cadenas, ¿puedo verificar si hay una cadena en la matriz sin hacer un for
bucle? Específicamente, estoy buscando una manera de hacerlo dentro de una if
declaración, así que algo como esto:
if [check that item is in array]:
Si tengo una serie de cadenas, ¿puedo verificar si hay una cadena en la matriz sin hacer un for
bucle? Específicamente, estoy buscando una manera de hacerlo dentro de una if
declaración, así que algo como esto:
if [check that item is in array]:
Respuestas:
Suponiendo que quiere decir "lista" donde dice "matriz", puede hacer
if item in my_list:
# whatever
Esto funciona para cualquier colección, no solo para listas. Para los diccionarios, verifica si la clave dada está presente en el diccionario.
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
Utiliza una función lambda.
Digamos que tienes una matriz:
nums = [0,1,5]
Compruebe si 5 está en nums
:
(len(filter (lambda x : x == 5, nums)) > 0)
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
:
(len(filter (lambda x : x >= 5, nums)) > 0)
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
if name in test['Name'].values :
print(name)
para una lista normal no tiene que usar .values