Se eu tenho uma matriz de cadeias, posso verificar se uma cadeia está na matriz sem fazer um forloop? Especificamente, estou procurando uma maneira de fazer isso dentro de uma ifdeclaração, algo assim:
@jdi, e esse loop será executado muito mais rápido do que o codificado explicitamente em Python, sem mencionar que é mais fácil de ler.
Mark Ransom
17
Também vou assumir que você quer dizer "lista" quando diz "matriz". A solução de Sven Marnach é boa. Se você estiver fazendo verificações repetidas na lista, pode valer a pena convertê-lo em um conjunto ou frozenset, o que pode ser mais rápido para cada verificação. Supondo que sua lista de strs seja chamada subjects:
subject_set = frozenset(subjects)if query in subject_set:# whatever
Isso funciona com o Python2. Com o Python 3.7, você receberá este erro:TypeError: object of type 'filter' has no len()
Jun711 20/09/19
1
Você precisa usar .values para matrizes. por exemplo, digamos que você tenha um quadro de dados com um nome de coluna, ou seja, teste ['Nome'], você pode executar
if name in test['Name'].values :print(name)
para uma lista normal, você não precisa usar .values
Respostas:
Supondo que você queira dizer "lista" onde diz "matriz", você pode fazer
Isso funciona para qualquer coleção, não apenas para listas. Para dicionários, verifica se a chave fornecida está presente no dicionário.
fonte
Também vou assumir que você quer dizer "lista" quando diz "matriz". A solução de Sven Marnach é boa. Se você estiver fazendo verificações repetidas na lista, pode valer a pena convertê-lo em um conjunto ou frozenset, o que pode ser mais rápido para cada verificação. Supondo que sua lista de strs seja chamada
subjects
:fonte
Use uma função lambda.
Digamos que você tenha uma matriz:
Verifique se 5 está em
nums
:Esta solução é mais robusta. Agora você pode verificar se algum número que satisfaça uma determinada condição está em sua matriz
nums
.Por exemplo, verifique se existe algum número maior ou igual a 5 em
nums
:fonte
TypeError: object of type 'filter' has no len()
Você precisa usar .values para matrizes. por exemplo, digamos que você tenha um quadro de dados com um nome de coluna, ou seja, teste ['Nome'], você pode executar
para uma lista normal, você não precisa usar .values
fonte
Você também pode usar a mesma sintaxe para uma matriz. Por exemplo, pesquisando em uma série do Pandas:
fonte