检查项目是否在数组/列表中

时间:2012-06-28 19:39:17

标签: python arrays contains

如果我有一个字符串数组,我可以检查字符串是否在数组中而不进行for循环吗?具体来说,我正在寻找一种方法在if语句中进行,所以像这样:

if [check that item is in array]:

5 个答案:

答案 0 :(得分:332)

假设你的意思是“list”,你说“阵列”,你可以做

if item in my_list:
    # whatever

这适用于任何集合,而不仅仅适用于列表。对于词典,它会检查字典中是否存在给定的键。

答案 1 :(得分:14)

当你说“数组”时,我也会认为你的意思是“列表”。 Sven Marnach的解决方案很好。如果您要对列表进行重复检查,则可能需要将其转换为set或frozenset,这对于每个检查都可以更快。假设您的strs列表名为subjects

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

答案 2 :(得分:2)

使用lambda函数。

假设你有一个数组:

nums = [0,1,5]

检查5是否在nums

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

此解决方案更加强大。您现在可以检查满足某个条件的任何数字是否在您的数组nums中。

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

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

答案 3 :(得分:0)

你必须为数组使用.values。 例如,假设你的数据框有一个列名,即test [' Name'],你可以做

if name in test['Name'].values :
   print(name)

对于普通列表,您不必使用.values

答案 4 :(得分:-3)

您也可以对数组使用相同的语法。例如,在Pandas系列中搜索:

ser = pd.Series(['some', 'strings', 'to', 'query'])

if item in ser.values:
    # do stuff