Se eu tenho uma matriz de cadeias, posso verificar se uma cadeia está na matriz sem fazer um for
loop? Especificamente, estou procurando uma maneira de fazer isso dentro de uma if
declaração, algo assim:
if [check that item is in array]:
Se eu tenho uma matriz de cadeias, posso verificar se uma cadeia está na matriz sem fazer um for
loop? Especificamente, estou procurando uma maneira de fazer isso dentro de uma if
declaração, algo assim:
if [check that item is in array]:
Respostas:
Supondo que você queira dizer "lista" onde diz "matriz", você pode fazer
if item in my_list:
# whatever
Isso funciona para qualquer coleção, não apenas para listas. Para dicionários, verifica se a chave fornecida está presente no dicionário.
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
Use uma função lambda.
Digamos que você tenha uma matriz:
nums = [0,1,5]
Verifique se 5 está em nums
:
(len(filter (lambda x : x == 5, nums)) > 0)
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
:
(len(filter (lambda x : x >= 5, nums)) > 0)
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
if name in test['Name'].values :
print(name)
para uma lista normal, você não precisa usar .values