你如何在三重嵌套列表中搜索?

时间:2016-05-15 11:29:13

标签: python nested-lists

我正在尝试在python中搜索三重嵌套列表。我想出了一种不起作用的超级凌乱方式。你如何有效地做到这一点?我正在使用python 3.我正在尝试搜索的列表并不是每个插槽中的三重嵌套。

这是我编写的糟糕的混乱方式,因为某种原因无效。

pop

2 个答案:

答案 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