回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>所以我们有一个家庭和谁是谁的孩子的口述。(这是一个全局变量)</p>
<pre><code>kids= {
"Adam": ["Matjaž", "Cilka", "Daniel"],
"Aleksander": [],
"Alenka": [],
"Barbara": [],
"Cilka": [],
"Daniel": ["Elizabeta", "Hans"],
"Erik": [],
"Elizabeta": ["Ludvik", "Jurij", "Barbara"],
"Franc": [],
"Herman": ["Margareta"],
"Hans": ["Herman", "Erik"],
"Jožef": ["Alenka", "Aleksander", "Petra"],
"Jurij": ["Franc", "Jožef"],
"Ludvik": [],
"Margareta": [],
"Matjaž": ["Viljem"],
"Petra": [],
"Tadeja": [],
"Viljem": ["Tadeja"],
}
</code></pre>
<p>现在我们有一个递归函数:</p>
<pre><code>def richest(person, money):
</code></pre>
<p>货币是一个局部变量,它包含每个人的货币数量。你知道吗</p>
<pre><code>money = {
"Adam": 42,
"Aleksander": 3,
"Alenka": 3,
"Barbara": 37,
"Cilka": 242,
"Daniel": 4,
"Erik": 32,
"Elizabeta": 8,
"Franc": 16,
"Herman": 12,
"Hans": 55,
"Jožef": 7,
"Jurij": 5,
"Ludvik": 37,
"Margareta": 20,
"Matjaž": 142,
"Petra": 3,
"Tadeja": 45,
"Viljem": 55
}
</code></pre>
<p>当我调用函数<code>richest("Elizabeta", money)</code>时,它应该返回带有max money和money数量的person/s。
在本例中,返回:<code>[("Ludvik", 37), ("Barbara", 37)]</code></p>
<p>我试过做一个递归函数,但它不能正常工作。你知道吗</p>
<pre><code>def richest(person, money):
people=[]
for kid in kids[person]:
#goes for each kid of that person and their kids.
return #somehow append it into the people array
</code></pre>
<p>我做错了什么有人能帮我吗?我也尝试了一些发电机,但它附加[并没有]到每个孩子,所以它不工作太。。你知道吗</p>