检查项目是否在数组中
如果我有一个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)