检查列表中是否存在

时间:2018-01-09 22:22:31

标签: python-3.x list

我有一个有点愚蠢的问题让我疯了几天。重型网络搜索也没有帮助。

在一些较大的SQLAlchemy应用程序中,我想检查列表中是否存在某些值(在执行SQL之前)。因此,我定义了两个函数:一个检查列表中是否存在值,然后返回True或False。加上第二个循环,只要该值不在列表中:

def check_value(itemlist, value_check):
    print(itemlist) #only for debugging reasons
    if value_check in itemlist:
        print('Item is already in list') #only for debugging reasons
        return False
    else:
        print('Item is not in list') #only for debugging reasons
        return True

def check_input(itemlist, value_check):
    while check_value(itemlist ,value_check)==False:
        value_check = input('Please input valid value')
    return value_check

if __name__ == "__main__":

        items = [1, 18272, 18279, 12, 298]
        value_check = 18272
        check_input(items, value_check)

现在,如果我运行此代码,请说:

[1, 18272, 18279, 12, 298]
Item is already in list
Please input valid value

IDLE首先给出了正确答案:

[1, 18272, 18279, 12, 298]
Item is not in list
>>> 

然后我给它一个也在列表中的数字让我们说" 1"但它仍然告诉我价值不在列表中:

{{1}}

很明显已经多次询问过了,我已经在这里找到了一些帮助:How to check if a specific integer is in a list我尝试了这种方法x(参见上面的代码)。

我也找到了这个帖子:Finding the index of an item given a list containing it in Python这是我的解决方法,检查给定值的索引并写一些try / except。不过我不明白为什么x不能在这里工作。

我觉得我错过了一些非常基本的东西,但我无法理解。

1 个答案:

答案 0 :(得分:0)

使用var passingGrades = function(grades) { return grades.filter(function(grade) { return grade >= 70; }); } console.log( passingGrades([63, 75, 39, 88, 94, 100, 24]) ); 代替value_check = int(input('Please input valid value')) value_check = input('Please input valid value')函数返回一个字符串,您的列表只包含数字,从而使input条件while即项目不在列表中