如何在Python中返回递归函数的列表

2024-01-03

我试图从函数返回一个字符串列表,该函数计算没有连续 0 的所有可能排列。

为此,我正在运行一个有效的递归函数,但我需要创建一个包含结果的列表。

# Function to print all n–digit binary strings without any consecutive 0's
def countStrings(n, out="", last_digit=0):
    # if the number becomes n–digit, print it
    
    if n == 0:
        print(out)
        return
    
    # append 0 to the result and recur with one less digit
    countStrings(n - 1, out + '1', 0)
    
 
    # append 1 to the result and recur with one less digit
    # only if the last digit is 0
    if last_digit == 0:
        countStrings(n - 1, out + '0', 1)

当我运行它时,例如:a = countStrings(3),它打印所有可能性,但变量“a”返回为“None”:

results:

111
110
101
011
010

type(a): Nonetype

我尝试在某些地方插入附加,但没有结果

我不知道我错过了什么


这是您正在寻找的吗?

# Function to print all n–digit binary strings without any consecutive 0's
def countStrings(n, out="", last_digit=0, acc=[]):
    # if the number becomes n–digit, print it
    
    if n == 0:
        print(out)
        acc.append(out)
        return acc
    
    # append 0 to the result and recur with one less digit
    countStrings(n - 1, out + '1', 0, acc)
    
 
    # append 1 to the result and recur with one less digit
    # only if the last digit is 0
    if last_digit == 0:
        countStrings(n - 1, out + '0', 1, acc)
    return acc

acc = countStrings(3)
print('acc', acc)

Output:

111
110
101
011
010
('acc', ['111', '110', '101', '011', '010'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中返回递归函数的列表 的相关文章

随机推荐

  • 计算根的父母拥有的百分比

    简而言之 我试图计算树的父级所拥有的树根的百分比 即树的更上层 我怎样才能单独用 SQL 来做到这一点 这是我的 示例 架构 请注意 虽然层次结构本身非常简单 但还有一个附加的holding id 这意味着单亲父母可以 拥有 孩子的不同部分
  • 如何使用 SymPy codegen 生成 Fortran 子例程

    我想使用 SymPy codegen 实用程序生成 Fortran 子例程 我可以毫无问题地生成 Fortran 函数codegen f x y z f95 filename 但我想生成一个 Fortran 子例程 以便可以修改输入数组 我
  • 将 ZedGraph 中的 DateAsOrdinal xAxis 标签格式化

    我现在已经改变了我的x axis to 日期为序号 但我想改进标签格式 我目前处理的是XAxis ScaleFormatEvent像这样 Private Function OnXScaleFormatEvent ByVal pane As
  • C++11 移动语义是在做一些新的事情,还是只是让语义更清晰?

    我基本上想弄清楚 整个 移动语义 概念是全新的 还是只是使现有代码更易于实现 我总是对减少调用复制 构造函数的次数感兴趣 但我通常使用引用 可能还有 const 来传递对象 并确保我始终使用初始化列表 考虑到这一点 并查看了整个丑陋的 语法
  • 向 C# 控制台应用程序添加“--help”参数

    我通过命令行使用的几乎所有 exe 都有一个由 help 命令调用的帮助函数 我如何在 C 中实现这个 难道只是检查args 中的参数是否是字符串 help 那么简单吗 使用 nix 命令 通常可以通过以下方式获取帮助 h or help
  • 如何在android中将数据库写入文本文件

    我正在为我的大学项目开发 一个间谍应用程序 为此 我记录了设备的通话 位置和短信并将它们存储在数据库中 现在我想将数据库的内容导出到文本文件 我尝试了下面的代码 private void readAndWriteCallsData File
  • 声明时没有实例化对象的原因是什么?

    最近我不得不深入研究一些 VB6 代码 我到处都看到了这种模式 dim o as obj set o new obj 为什么不是这个 dim o as new obj 我记得15年前有一个很好的理由 但现在我不记得是什么了 有人记得吗 理由
  • 检查元素是否为 div

    我如何检查是否 this is a div ul or blockquote 例如 if this is a div alert its a div else alert its not a div some other stuff 像这样
  • 蒙古人名的处理

    有几个国家 土耳其 蒙古 吉尔吉斯斯坦等 通常男性的名字可以没有中间名 而是使用 oglu uulu 等词代替 例如 Michael oglu Bret 意思是 布雷特的迈克尔儿子 我曾经把这类词分开 并把它们当作中间名 所以在过去的一周里
  • 在画布绘图上设置触摸监听器

    假设我在画布上绘制了位图图像或简单的圆圈 如何设置 OnTouchListener 来检查我的绘图是否被触摸 由于我将在画布上绘制多个圆圈 因此我希望每个圆圈都有一些唯一的 ID 以便我可以相应地工作 当您触摸屏幕时 获取 x 和 y 坐标
  • C# 和 SIMD:高加速和低加速。怎么了?

    问题介绍 我正在尝试加快我正在编写的 2d 光线追踪器的相交代码 我使用 C 和 System Numerics 库来提高 SIMD 指令的速度 问题是我得到了奇怪的结果 有超顶加速和相当低的加速 我的问题是 为什么一个是在屋顶之上 而另一
  • 计算多部分/表单数据编码文件的大小

    我正在编写一个应该接收文件并存储它的应用程序 一种存储方式是将其上传到另一台服务器 例如 filehoster 服务器端我使用Python和金字塔框架 我已经解决了客户端上传时获取文件的问题 并包装了返回的应用程序make wsgi app
  • CSS:居中块,但内容向左对齐

    我希望整个块位于其父级的中心 但我希望块的内容左对齐 例子最有效 在本页 ascii 艺术应该居中 正如它所显示的那样 但它应该对齐并且看起来像 YAML 或这个 http yaml online parser appspot com ya
  • C++对象构造方法之间的区别

    C 中不同的构造语法总是让我有点困惑 在另一个问题 https stackoverflow com questions 48255276 why does stdstring x00 report length of 0 48255303
  • java.lang.NoClassDefFoundError: android/graphics/drawable/Icon

    到目前为止 我仅对一位使用 root 手机 SM G900R7 Android 4 4 2 的用户遇到此错误 错误是这样的 Fatal Exception java lang NoClassDefFoundError android gra
  • 在 C#/WPF 中获取 PathGeometry(行)的长度

    如果我有一条闭合路径 我可以使用Geometry GetArea 来近似我的形状的面积 这太棒了 节省了我很多时间 但是周围有什么东西可以帮助我找到一条未闭合路径的长度吗 我现在能想到的最好办法就是确保我正在使用PathGeometry并致
  • 如何使用 PCL 读取 .ply 文件

    我可以使用这个程序读取 pcd 数据 include
  • Python 字符串不区分大小写

    我知道您可以使用 ctypes 库对字符串执行不区分大小写的比较 但是我也想执行不区分大小写的替换 目前我知道做到这一点的唯一方法是使用正则表达式 通过它来做到这一点似乎有点糟糕 Replace 是否有不区分大小写的版本 您可以将标志 re
  • 使用 Python 的“子进程”运行“导出”命令不起作用

    subprocess run export FOO BAR shell True 这根本行不通 我不知道为什么 我想做的就是从 python 3 5 1 脚本中设置一个环境变量 当我运行上面的行时 什么也没有发生 没有引发任何错误 当我自己
  • 如何在Python中返回递归函数的列表

    我试图从函数返回一个字符串列表 该函数计算没有连续 0 的所有可能排列 为此 我正在运行一个有效的递归函数 但我需要创建一个包含结果的列表 Function to print all n digit binary strings witho