Com uma lista contendo matrizes numpy, isso verificará instâncias ou valores numpy dentro das instâncias numpy?
Daniel Möller
Cuidado! Isso corresponde, embora seja provavelmente o que você não esperava:o='--skip'; o in ("--skip-ias"); # returns True !
Alex F
3
@AlexF: Isso corresponde porque ("--skip-ias")não é uma tupla, mas uma string (os parênteses não fazem nada, assim como (1)é apenas um número inteiro). Se você deseja uma tupla de 1, você precisa adicionar uma vírgula após o item único: ("--skip-ias",)(ou (1,)).
Blckknght
Observe que, se você estiver comparando caracteres, isso não diferencia maiúsculas de minúsculas.
Tillson
65
Além do que outros disseram, você também pode estar interessado em saber que o que infaz é chamar o list.__contains__método, que você pode definir em qualquer classe que escrever e pode ser extremamente útil para usar python em toda sua extensão.
Um uso tolo pode ser:
>>>classContainsEverything:def __init__(self):returnNonedef __contains__(self,*elem,**k):returnTrue>>> a =ContainsEverything()>>>3in a
True>>> a in a
True>>>Falsein a
True>>>Falsenotin a
False>>>
Eu vim com esse liner recentemente para saber Truese uma lista contém qualquer número de ocorrências de um item ou Falsese não contém ocorrências ou nada. O uso next(...)fornece um valor de retorno padrão ( False) e significa que ele deve executar significativamente mais rápido do que executar toda a compreensão da lista.
list_does_contain = next((True for item in list_to_test if item == test_item), False)
No meu caso, tenho uma lista de objetos chamada Category e preciso testá-lo apenas para a propriedade Link, para que essas soluções se encaixem melhor no meu caso. Graças
rodrigorf
3
any(item == test_item for item in list_to_test)funcionaria também, eu acho?
alguém
3
O método list indexretornará -1se o item não estiver presente e retornará o índice do item na lista, se estiver presente. Como alternativa, em uma ifdeclaração, você pode fazer o seguinte:
if myItem in list:#do things
Você também pode verificar se um elemento não está em uma lista com a seguinte instrução if:
Respostas:
Você pode usar esta sintaxe:
Além disso, operador inverso:
É um bom trabalho para listas, tuplas, conjuntos e dictos (teclas de verificação).
Observe que esta é uma operação O (n) em listas e tuplas, mas uma operação O (1) em conjuntos e dictos.
fonte
o='--skip'; o in ("--skip-ias"); # returns True !
("--skip-ias")
não é uma tupla, mas uma string (os parênteses não fazem nada, assim como(1)
é apenas um número inteiro). Se você deseja uma tupla de 1, você precisa adicionar uma vírgula após o item único:("--skip-ias",)
(ou(1,)
).Além do que outros disseram, você também pode estar interessado em saber que o que
in
faz é chamar olist.__contains__
método, que você pode definir em qualquer classe que escrever e pode ser extremamente útil para usar python em toda sua extensão.Um uso tolo pode ser:
fonte
Eu vim com esse liner recentemente para saber
True
se uma lista contém qualquer número de ocorrências de um item ouFalse
se não contém ocorrências ou nada. O usonext(...)
fornece um valor de retorno padrão (False
) e significa que ele deve executar significativamente mais rápido do que executar toda a compreensão da lista.list_does_contain = next((True for item in list_to_test if item == test_item), False)
fonte
any(item == test_item for item in list_to_test)
funcionaria também, eu acho?O método list
index
retornará-1
se o item não estiver presente e retornará o índice do item na lista, se estiver presente. Como alternativa, em umaif
declaração, você pode fazer o seguinte:Você também pode verificar se um elemento não está em uma lista com a seguinte instrução if:
fonte
index
método não retorna -1 se o elemento não estiver presente, lança umaValueError
exceção.