python - 如何返回满足条件的字典中的最后一个值
问题描述
代码应继续查找键,直到找到没有对应值的键。只有这样才能返回该密钥。如果在跟踪期间密钥不可用或未找到,则必须返回最后一个密钥。
我已经使用递归跟踪到最终的键/值对,但我无法返回最终的跟踪值。
def rabbit_hole(d, word):
for key,val in d.items():
if key == word:
return rabbit_hole(d,val)
d = {"bat": "pig", "pig": "cat", "cat": "dog", "dog": "ant",
"cow": "bee", "bee": "elk", "elk": "fly", "ewe": "cod",
"cod": "hen", "hog": "fox", "fox": "jay", "jay": "doe",
"rat": "ram", "ram": "rat"}
print(rabbit_hole(d, "bat"))
预期结果:ant
实际结果:无(在这种情况下,我无法返回最后一个值“ant”)
解决方案
我想这就是你要找的 -
dum = []
def rabbit_hole(dic, word):
dum.append(word)
if len(dum)>len(dic):
print("Hey! this input is not right, there's no end to it..")
return
for key,val in dic.items():
if key == word:
return rabbit_hole(dic, val)
return word
d = {"bat": "pig", "pig": "cat", "cat": "dog", "dog": "ant",
"cow": "bee", "bee": "elk", "elk": "fly", "ewe": "cod",
"cod": "hen", "hog": "fox", "fox": "jay", "jay": "doe",
"rat": "ram", "ram": "mouse"}
print(rabbit_hole(d,"bat"))
推荐阅读
- sql - 优化的 SQL 选择,用于跨多个表进行选择
- kotlin - subscribeOn(Schedulers.io()) 不工作,但 subscribeOn(Schedulers.trampoline()) 不工作
- docker - 为什么我的 Docker 容器没有运行我的 cron 脚本,但是当我重新启动服务 cron 时它运行了?
- java - 如何创建带有圆角背景的 EditText
- ios - 在 pubspec.yaml 中添加 Google Maps 包后,Flutter iOS 应用程序将无法构建
- scala - Scala中具有相互递归类型的递归方案
- python-3.x - 使用 Selenium 和 Python 找不到 css 选择器、方法或元素错误
- javascript - ReactJs 中的条件渲染,用于 Html 中的一部分
- firebase - 如何在 Unity 中从 Firebase 存储设置图像?
- php - 如何修复 wamp 服务器中的错误“未捕获的错误:调用未定义的函数 oci_connect()”?