检查项目是否在数组中

如果我有一个string数组,我可以检查一个string是否在数组中没有做for循环? 具体来说,我正在寻找一种方法来做一个if语句,所以这样的事情:

 if [check that item is in array]: 

假设你的意思是“列表”,你说“数组”,你可以做

 if item in my_list: # whatever 

当你说“arrays”的时候,我也会假设你的意思是“列表”。 Sven Marnach的解决scheme很好。 如果您要在列表上进行重复检查,则可能需要将其转换为set或frozenset,对于每次检查而言,这可能会更快。 假设你的strs列表被称为subjects

 subject_set = frozenset(subjects) if query in subject_set: # whatever 

您也可以对数组使用相同的语法。 例如,在pandas系列内search:

 ser = pd.Series(['some', 'strings', 'to', 'query']) if item in ser.values: # do stuff 

使用lambda函数。

假设你有一个数组:

 nums = [0,1,5] 

检查5是否在数量:

 (len(filter (lambda x : x == 5, nums)) > 0) 

这个解决scheme更强大。 你现在可以检查是否有任何满足一定条件的数字在你的数组中。

例如,检查nums是否存在大于或等于5的数字:

 (len(filter (lambda x : x >= 5, nums)) > 0)