如何使用递归垂直打印列表?

卡斯珀·奈

我想垂直递归打印此列表:示例:

print_list(['hi', [22,45], 'dog', 21])

预期:

hi
[22, 45]
dog
21

这是我的代码:

def print_list(n_list):
    if len(n_list) == 0:
            return
    else:
        half = len(n_list) // 2
        for i in range(half):
            if half == 2:
                print (n_list[i], sep = "\n")
        else:
            print (n_list[half+i])

这是我得到的:

hi
[22, 45]
dog

我不确定为什么列表没有完整显示。对于包含更多项目的列表,也只会出现一部分。我知道我在打印语句中弄乱了一些东西,但无法弄清楚...

塞尔丘克

您很亲密,但是您没有应用归约,因为您的函数未调用自身。这是应该工作的代码的略微修改版本:

def print_list(n_list):
  if len(n_list) == 0:
    return
  else:
    half = (len(n_list) + 1) // 2

    # Print elements in the first half:
    for i in range(half):
      print(n_list[i])

    # Print second half using recursion:
    print_list(n_list[half:])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用C ++递归以面向对象形式(OOP)打印链接列表

来自分类Dev

如何在不使用Java递归的情况下打印反向链接列表?

来自分类Dev

如何使用递归生成列表?

来自分类Dev

如何使用类链表进行递归打印

来自分类Dev

如何垂直打印一个列表元素?球拍

来自分类Dev

如何使用Linq在列表内打印列表

来自分类Dev

递归打印循环链接列表

来自分类Dev

递归函数不打印列表

来自分类Dev

如何使用递归来反向链接列表?

来自分类Dev

如何使用递归功能创建列表

来自分类Dev

如何使用Template Toolkit打印递归数据结构?

来自分类Dev

如何使用递归的Java与限制= N打印奇数

来自分类Dev

如何在yacc中使用递归打印AST?

来自分类Dev

如何快速使用格式打印列表?

来自分类Dev

如何使用javascript打印出通用列表?

来自分类Dev

如何使用ToList()打印多个列表项?

来自分类Dev

如何使用棋子位置列表打印棋盘

来自分类Dev

如何使用print()打印链接列表

来自分类Dev

如何使用 scala 打印地图值列表

来自分类Dev

如何使用地图打印列表元素?

来自分类Dev

如何使用格式功能打印列表

来自分类Dev

如何递归打印DOM内容?

来自分类Dev

如何打印递归评估程序?

来自分类Dev

如何递归打印gradle配置?

来自分类Dev

如何递归打印列的内容

来自分类Dev

如何垂直打印输出

来自分类Dev

如何递归复制列表?

来自分类Dev

使用递归打印输出

来自分类Dev

C - 使用递归打印链表