Con una lista que contiene matrices numpy, ¿esto verificará si hay instancias o valores numpy dentro de las instancias numpy?
Daniel Möller
¡Cuidado! Esto coincide, mientras que esto es muy probablemente lo que no esperaba:o='--skip'; o in ("--skip-ias"); # returns True !
Alex F
3
@AlexF: Eso coincide porque ("--skip-ias")no es una tupla, sino una cadena (los paréntesis no hacen nada, simplemente (1)es un número entero). Si desea una tupla de 1, debe agregar una coma después del elemento individual: ("--skip-ias",)(o (1,)).
Blckknght
Tenga en cuenta que si está comparando caracteres, esto no distingue entre mayúsculas y minúsculas.
Tillson
65
Además de lo que otros han dicho, también puede interesarle saber que lo que inhace es llamar al list.__contains__método, que puede definir en cualquier clase que escriba y puede ser extremadamente útil para usar Python en toda su extensión.
Un uso tonto puede ser:
>>>classContainsEverything:def __init__(self):returnNonedef __contains__(self,*elem,**k):returnTrue>>> a =ContainsEverything()>>>3in aTrue>>> a in aTrue>>>Falsein aTrue>>>Falsenotin aFalse>>>
Se me ocurrió esta línea recientemente para saber Truesi una lista contiene cualquier número de ocurrencias de un elemento, oFalse si no contiene ocurrencias o nada en absoluto. El uso next(...)le da a este un valor de retorno predeterminado ( False) y significa que debería ejecutarse significativamente más rápido que ejecutar toda la comprensión de la lista.
list_does_contain = next((True for item in list_to_test if item == test_item), False)
En mi caso, tengo una lista de objetos llamada Categoría y la necesito para probar solo la propiedad Enlace, por lo que esta solución encaja mejor en mi caso. Gracias
rodrigorf
3
any(item == test_item for item in list_to_test)funcionaría también, creo?
alguien el
3
El método de lista indexdevolverá -1si el elemento no está presente, y devolverá el índice del elemento en la lista si está presente. Alternativamente, en una ifdeclaración puede hacer lo siguiente:
if myItem in list:#do things
También puede verificar si un elemento no está en una lista con la siguiente instrucción if:
Respuestas:
Puedes usar esta sintaxis:
Además, operador inverso:
Funciona bien para listas, tuplas, conjuntos y dictados (teclas de verificación).
Tenga en cuenta que esta es una operación O (n) en listas y tuplas, pero una operación O (1) en conjuntos y dictados.
fuente
o='--skip'; o in ("--skip-ias"); # returns True !
("--skip-ias")
no es una tupla, sino una cadena (los paréntesis no hacen nada, simplemente(1)
es un número entero). Si desea una tupla de 1, debe agregar una coma después del elemento individual:("--skip-ias",)
(o(1,)
).Además de lo que otros han dicho, también puede interesarle saber que lo que
in
hace es llamar allist.__contains__
método, que puede definir en cualquier clase que escriba y puede ser extremadamente útil para usar Python en toda su extensión.Un uso tonto puede ser:
fuente
Se me ocurrió esta línea recientemente para saber
True
si una lista contiene cualquier número de ocurrencias de un elemento, oFalse
si no contiene ocurrencias o nada en absoluto. El usonext(...)
le da a este un valor de retorno predeterminado (False
) y significa que debería ejecutarse significativamente más rápido que ejecutar toda la comprensión de la lista.list_does_contain = next((True for item in list_to_test if item == test_item), False)
fuente
any(item == test_item for item in list_to_test)
funcionaría también, creo?El método de lista
index
devolverá-1
si el elemento no está presente, y devolverá el índice del elemento en la lista si está presente. Alternativamente, en unaif
declaración puede hacer lo siguiente:También puede verificar si un elemento no está en una lista con la siguiente instrucción if:
fuente
index
método no devuelve -1 si el elemento no está presente, arroja unaValueError
excepción.