我正在尝试在python中搜索三重嵌套列表。我想出了一种不起作用的超级凌乱方式。你如何有效地做到这一点?我正在使用python 3.我正在尝试搜索的列表并不是每个插槽中的三重嵌套。
这是我编写的糟糕的混乱方式,因为某种原因无效。
pop
答案 0 :(得分:0)
要使代码正常工作,您只需删除以下行:
#if list is nested
else:
continue
为了使代码更好,您可以使用递归。此函数可以查明给定的单词是否位于您拥有的许多嵌套列表中:
def findWord(word,l):
words = []
lists = []
for entry in l:
if isinstance(entry,list):
lists.append(entry)
else:
words.append(entry)
for w in words:
if w == word:
return True
for ls in lists:
if findWord(word,ls) == True:
return True
return False
if findWord(userInput,VOCABULARY) == True:
print("YES")
else:
print("I don't know that word")
答案 1 :(得分:0)
如果您只想使用嵌套列表,那么下面的内容可能对您有所帮助,否则,上面提到的解决方案可以使列表变平或转换为Set也可以使用
def check(val):
for i in itertools.chain(VOCABULARY):
if val in i:
return True
return False