python 一个简单递归,2个小时都没写出来,牛人帮忙?

import time

a = {}
a['child'] = {}
a['child']['child'] = {}
a['child']['child']['child'] = {}
print(a)


要递归给child追加{},最后输出100层
回复
阅读 1.1k
4 个回答
a = {}
for _ in range(100):
    a = {"child": a}
print(a)

既然要递归 写个最小白版本的

a = {}

count=0
def func(a,count):
    if count==100:
        return
    a['child']={}
    a=a['child']
    count=count+1
    func(a,count)
    

func(a,count)
print(a)

想到个好玩的

a = {}

exp = "a.setdefault('child', {})"
for _ in range(10):
    eval(exp)
    exp = "a['child']" + exp[1:]
print(a)

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
def add_child(obj, n):
    if n == 0:
        return
    obj['child'] = {}
    add_child(obj['child'], n-1)

a = {}
add_child(a, 100)
print(a)

该递归函数的作用是向给定的字典obj中添加'child'键,并将其对应值设为一个新的空字典,然后在新字典中递归调用该函数。这样就可以实现向a中添加100个'child'键的操作。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏