背景信息:
嘿,
我想做以下事情:我有一个以id为键的字典,以各种事物为值的列表。其中一个值是一个字符串。我想检查一个列表是否包含这个字符串。我想把我字典里所有的钥匙都这样做。在如果列表包含字符串,我想打印“string is valid”
如果列表不包含字符串,我想打印“string is not valid”
到目前为止,还不错。在
此外,我要检查的列表依赖于用户的一个控制台输入,它指定应该检查哪个列表。控制台输入是“number”。在
我的想法是用嵌套的for循环迭代字典和列表,如果字符串(值的项)等于任何列表项,则进行比较。如果是的话,我想打破这个循环。如果在列表中找不到字符串,我想执行else语句来打印“stringisnotvalid”消息。在
代码段:def validationHelper(myDict, myList):
for key in myDict:
for value in myDict[key][0]:
for item in myList:
if value==item:
validationHelper.true="String is valid"
break
else:
validationHelper.true="Warning: String is NOT valid"
def validation(anyList,helperfunc):
if anyList=="one":
return helperfunc(finalDict,myList1)
if anyList=="two":
return helperfunc(finalDict,myList2)
if anyList=="three":
return helperfunc(finalDict,myList3)
validation(number, validationHelper)
print(validationHelper.true)
问题:
我运行这个,但是不管字符串是否在列表中,我总是得到else语句的打印输出。所以,我想我在for循环中的推理有错误?或者,我根本不懂for循环?!我用else语句尝试了不同的缩进,但无法解决我的问题。在