python - 如何在嵌套列表中查找给定元素?

标签 python recursion functional-programming

这是我的迭代解决方案:

def exists(key, arg):
    if not arg:
        return False
    else:
        for element in arg:
            if  isinstance(element,list):
                for i in element:
                    if i==key:
                        return True
            elif element==key:
                return True
    return False
print(exists("f", ["a", ["h", "e", "j"], ["t", "e", "s", "c", "o"]]))

但是,我的洛杉矶想要一个双递归函数来解决这个问题。

我的尝试:

def exists(key, arg):
    if not arg: //base case
        return False
    elif arg[0]==key: //if we find the key from the first trial
        return True
    else:
        return (exists(arg[0:],key))

这行不通;它不应该,因为没有停止。此外,它不考虑列表列表;我不知道该怎么做。

感谢任何回答、评论等

最佳答案

def exists(k, l):
    if not isinstance(l, list):
        return False
    if k in l:
        return True
    return any(map(lambda sublist: exists(k, sublist), l))

关于python - 如何在嵌套列表中查找给定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39641229/

相关文章:

javascript - 如何将此JavaScript代码转换为功能方式(最好使用Ramdajs)?

java - 接口(interface)中的 Guava 函数

python - 如何读取大型 csv 文件的特定行

python - Django表单向导typechoicefield返回字符串而不是 bool 值

java - 探查器能否更改在 Java 中运行递归调用所需的时间?

java - 使用递归除法的迷宫生成器

javascript - Javascript 中的短路 Array.reduce

python - 将连续相似的项目分组到 python 列表中

python通过串口监控

python - 为什么python系统路径中一个目录是另一个目录的子目录?