【发布时间】:2023-04-07 06:17:01
【问题描述】:
我目前正在尝试解决这个问题。我在它之后添加了我当前的代码,但它还没有工作。理想情况下,我不需要全局变量,但我不太确定如何在函数中声明字典而不每次递归调用都重置它。
问题
给以下函数一个递归实现: def 出场次数(s, low, high) 该函数给出了一个字符串 s 和两个索引:low 和 high (low
例如,调用appearances("Hello world", 0, 10) 可以返回: {'e':1,'o':2,'H':1,'l':3,'r':1,'':1,'d':1,'w':1}。
注意:字典是一个可变对象。使用该属性更新从递归调用返回的字典。
我的代码
d = {}
def appearances(s, low, high):
global d
if low > high:
print(d)
else:
if s[low] in d:
d[s[low]] = int(d.get(s[low])) + 1
else:
d = {s[low]: 1}
appearances(s, low + 1, high)
【问题讨论】:
-
d[s[low]] = 1应该这样做而不是d = {s[low]: 1}。或者,更奇怪的是,d.update({s[low]: 1})。顺便说一句,您的函数不返回字典 -
@DaniMesejo 哦,哇,谢谢!我没有排除这么小的解决方案。现在肯定更好,但我认为它不适用于多个单词字符串。并且感谢我回来时的注意事项,我之前从未使用过字典哈哈,所以我一定会调查一下。
-
这被认为是
solved还是您还有疑问?
标签: python dictionary recursion