背景信息:
嘿, 我想要做以下事情:我有一个字典,以ID作为键,值为各种东西的列表。值的其中一项是字符串。我想检查列表是否包含此字符串。我想对字典中的所有键执行此操作。
- 如果列表包含该字符串,则要打印“字符串有效”
- 如果列表不包含该字符串,则要打印“字符串无效”
到目前为止还算顺利。
此外,我要检查的列表取决于用户的一个控制台输入,该输入指定应检查哪个列表。控制台输入为"number"。
我的想法是使用嵌套的for循环遍历我的字典和列表,并比较字符串(值的项目)是否等于任何列表项。如果是,我要退出循环。如果在列表中未找到字符串,则要执行else语句以打印我的“字符串无效”消息。
代码片段:
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语句,但无法解决我的问题。
break
只会跳出最内层的循环。 - Daniel Roseman