我有一个有点愚蠢的问题让我疯了几天。重型网络搜索也没有帮助。
在一些较大的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不能在这里工作。
我觉得我错过了一些非常基本的东西,但我无法理解。
答案 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
即项目不在列表中