首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Usign :给出了公司管理字典,使用递归生成一个函数以获得输出,如下所示

Usign :给出了公司管理字典,使用递归生成一个函数以获得输出,如下所示
EN

Stack Overflow用户
提问于 2022-04-16 15:18:20
回答 1查看 49关注 0票数 -1

Python

公司={“名称”:“乔治”,“管理”:[{“名称”:“詹姆斯”,“管理”:{“名称”:“Jill”},{“名称”:“珍妮”},{“名称”:“Jamila”,“管理”:{“name”:“Jewel”},{"name":"Jasmine"},{“name”:“Jeremey”}

乔治经营一家公司。他管理着詹姆斯和贾米拉,这两个人都有一个小团队要管理。在詹姆斯的队伍里有吉尔和珍妮。贾米拉的队伍里有珠儿,茉莉花和杰里米。

其结果应是:

乔治在1级,詹姆斯在2级,吉尔在3级,珍妮在3级,贾米拉在2级,宝石在3级,茉莉在3级,杰雷米在3级

在这里输入图像描述

在这里输入图像描述

EN

回答 1

Stack Overflow用户

发布于 2022-04-16 15:25:20

代码语言:javascript
运行
复制
function* levels({ name, manages = [] }, level = 1) {
  yield [name, level]
  for (const m of manages)
    yield *levels(m, level + 1)
}

const company = {"name":"George", "manages":[{"name":"James", "manages":[{"name":"Jill"},{"name":"Jenny"}]}, {"name":"Jamila", "manages":[{"name":"Jewel"}, {"name":"Jasmine"}, {"name":"Jeremey"}]}]}

for (const [name, level] of levels(company))
  console.log(`${name} is at level ${level}`)

代码语言:javascript
运行
复制
George is at level 1
James is at level 2
Jill is at level 3
Jenny is at level 3
Jamila is at level 2
Jewel is at level 3
Jasmine is at level 3
Jeremey is at level 3

对于python,答案几乎是相同的。

代码语言:javascript
运行
复制
from json import loads

def levels(node, level = 1):
  yield (node['name'], level)
  try:
    for m in node['manages']:
      yield from levels(m, level + 1)
  except KeyError:
    return

company = loads('{"name":"George", "manages":[{"name":"James", "manages":[{"name":"Jill"},{"name":"Jenny"}]}, {"name":"Jamila", "manages":[{"name":"Jewel"}, {"name":"Jasmine"}, {"name":"Jeremey"}]}]}')

for (name, level) in levels(company):
  print(f"{name} is at level {level}")
代码语言:javascript
运行
复制
George is at level 1
James is at level 2
Jill is at level 3
Jenny is at level 3
Jamila is at level 2
Jewel is at level 3
Jasmine is at level 3
Jeremey is at level 3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71895106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档