python中的列表递归

2023-11-23

我刚开始学习python,有一些递归问题我似乎无法弄清楚。最烦人的是这个: 我需要构建一个函数ind(e,L) where e是一个整数并且L是一个列表。

通过输入e如果它在列表中,则输出需要是它的索引 例如:

ind(42,[0,14,52,42,15]) -> 3

这是我到目前为止编写的代码,但我得到的索引始终为 0。有人可以向我解释我做错了什么吗?

def location(e,L):
    if L == []:
        return False
    elif e == L[0]:
        A = L[:-1].index(e)
        return A
    else:
        return location(e,L[1:])

print(location(14,[1,2,14,1]))

谢谢 :)


您只有在以下情况下才返回e位于索引 0(您可以跳过L[:-1]...项,它始终为 0) 并传播不变。不返回无意义的索引,而是返回递归次数。最简单的方法是每当函数递归时就加 1。

def location(element, sequence):
    if not sequence:
        # e is not in the list at all
        # it is not meaningful to return an index
        raise IndexError
    elif element == sequence[0]:
        # we already know where e is
        # since we checked it explicitly
        return 0
    else:
        # keep searching in the remainder,
        # but increment recursion level by 1
        return 1 + location(element, sequence[1:])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中的列表递归 的相关文章

随机推荐

  • 编译gdb进行远程调试

    我正在尝试远程调试在arm9上运行的应用程序 到目前为止 我已经能够在我的设备上交叉编译和执行 gdbserver 获取 gdb 7 2 源代码并提取它们 configure target arm none linux gnueabi wi
  • python matplotlib 热图颜色条从透明

    如何实现这样的python matplotlib heatmap colorbar plt imshow a aspect auto cmap plt cm gist rainbow r plt colorbar matplotlib 库中
  • 当奇数宽度的 div 被分割 50%/50% 时,剩余的 1px 会发生什么?

    假设我想为以下内容制作背景div wrapper这样使用两个 div 一半是蓝色 一半是红色width 50 像这样 HTML div div div div div div CSS body html wrapper width 100
  • 使用 Flex/Bison 的解释器 REPL

    我已经为类 C 语言编写了一个解释器 使用 Flex 和 Bison 作为扫描器 解析器 执行完整的程序文件时它工作正常 现在我正在尝试在解释器中实现 REPL 以供交互式使用 我希望它像 Ruby 或 ML 中的命令行解释器一样工作 显示
  • AutoFac:注入 NULL 值

    我想使用 AutoFac 将当前主体注入需要它的对象中 假设我有一个对象 AuthorizationValidator 正在执行安全检查 它看起来像这样 public AuthorizationValidator IAuthorizatio
  • 是否可以通过JNI将静态库链接到Java?

    是否可以构建 HelloWorld lib 并使用 JNI 将其加载到 Java 应用程序 或者它只适用于共享库 我在 JNI 文档中找不到明确的答案 没有提到 静态库 它需要是一个动态库 幸运的是 您可以从静态库构建动态库
  • 安置新问题

    In this 我需要 C 数组类模板 它是固定大小的 基于堆栈的并且不需要默认构造函数我发布了一段代码 即使用带有 char 数组的放置 new 对我来说 这是绝对正常的事情 但根据评论 这段代码是错误的 谁能更详细地解释一下吗 具体来说
  • 有没有一种方法可以更新一个功能文件中的标头并使用 Karate.config.js 中的身份验证令牌?

    我想仅在一个功能文件中更新我的通用标头 Accept 和 Content Type 但是 我想使用已在 Karate config cs 文件中配置的授权令牌 你能帮我解决这个问题吗 文档对此进行了详细解释 https github com
  • 以编程方式确定 Cisco VPN 客户端是否已连接

    我正在使用基本的 Cisco VPN 客户端 我相信是 v 5 无论如何 是否可以以编程方式确定特定配置文件 或与此相关的任何配置文件 是否已连接 我希望以某种方式从客户本身获得状态 我不想尝试 ping VPN 另一端的某个 IP 才能查
  • PHP 中 ord 或 charCodeAt() 的 UTF-8 安全等效项

    我需要能够使用 ord 来获取与 javascript 的 charCodeAt 函数相同的值 问题是 ord 不支持 UTF8 如何在 PHP 中将 转换为 260 我尝试过一些 uniord 函数 但它们都报告 256 而不是 260
  • 有人知道如何在记事本++中使用正则表达式查找阿拉伯字符吗?

    我正在尝试使用 Notepad CTRL F 和正则表达式来检测网页 HTML 中的阿拉伯字符 我输入以下内容作为我的搜索词 它返回所有字符 u0600 u06FF 我正在使用的随机文本示例块 awr4tgagas qa4tq4tw q4t
  • 如何在 JBoss AS 7 中部署 war 文件?

    我下载了 JBoss Application Server 5 并成功部署了一个 war 文件 我将具有简单 index jsp 文件的 Hello war 复制粘贴到 jboss 5 1 0 GA jdk6 jboss 5 1 0 GA
  • React Native Module AppRegistry 不是已注册的可调用模块

    我在处理我们团队正在开发的共享 github 项目时遇到问题 我已经为这个问题苦苦挣扎了大约一周 但没有任何运气 问题是在我团队的计算机上运行的全新克隆无法在我的计算机上正常运行 它抛出错误 Module AppRegistry 不是可调用
  • 滑动手势在全屏模式下的 YouTubePlayerView 中不起作用

    我正在使用YouTube API 我想应用Swipe左右手势开启YouTubePlayerView在全屏模式下 The Swipe手势不起作用Android4 0 版本时YouTubePlayerView处于全屏模式 请在这件事上给予我帮助
  • 处理 UNPIVOT 中的 NULL 值

    我可以对表进行逆透视 但结果中不包含空值 create table pivot task age int null a numeric 8 2 b numeric 8 2 c numeric 8 2 d numeric 8 2 e nume
  • 如何让鼠标冻结c#

    我希望鼠标按下时冻结 无法移动 谢谢 我使用了一个tableLayoutPanel供您参考 只需记住将代码实现到前面的Control即可 选项1 重置鼠标位置 定义两个全局变量 bool mousemove true Point curre
  • 如何使用可变模板来展平类型树?

    我有一个这样的构造 template
  • XSD 代码生成器的比较 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在对从 xsd 架构文件生成代码进行一些研究 我的要求 必须生成 C 2 0 代码 或更高版本 并在需要时使用泛型集合 必须从 xsd 注释生成
  • 如何在 matplotlib 中为不等间距的 bin 绘制具有相同 bin 宽度的直方图

    我正在尝试在 matplotlib 中绘制包含多个数据系列的直方图 我的垃圾箱间距不等 但我希望每个垃圾箱的宽度相同 所以我使用了属性width这样 aa 0 1 1 2 3 3 4 4 4 4 5 6 7 9 plt hist aa aa
  • python中的列表递归

    我刚开始学习python 有一些递归问题我似乎无法弄清楚 最烦人的是这个 我需要构建一个函数ind e L where e是一个整数并且L是一个列表 通过输入e如果它在列表中 则输出需要是它的索引 例如 ind 42 0 14 52 42