首页 > 解决方案 > 如何知道一个值是否在嵌套字典中?

问题描述

我是 Python 新手,仍在学习如何使用。我有以下字典:

dic = {'0': {'text': 'a', 'lang': 'es', 'rating': '4'}, '1': {'text': 'b', 'lang': 'es', 'rating': '3'}, '2': {'text': 'c', 'lang': 'es', 'rating': '1'}, '3': {'text': 'd', 'lang': 'es', 'rating': '2'}, '4': {'text': 'e', 'lang': 'es', 'rating': '5'}}

现在,我想知道文本,例如,'a' 是否是任何嵌套字典的值(我知道有一个 value() 函数返回字典的值,但在这种情况下它只会返回第一个字典的值,不是吗?像 0,1,2,3,4)

我试过

for i in range(len(dic)):
  if text in dic[i].values():
    print("Yes")
  else:
    print("No")

但这给了我一个值为“0”的 KeyError。我搜索了类似的问题,但没有找到任何可以用来解决我的问题的问题。你能帮我么?提前致谢。

标签: pythonpython-3.xdictionary

解决方案


您可以使用any

dic = {'0': {'text': 'a', 'lang': 'es', 'rating': '4'}, '1': {'text': 'b', 'lang': 'es', 'rating': '3'}, '2': {'text': 'c', 'lang': 'es', 'rating': '1'}, '3': {'text': 'd', 'lang': 'es', 'rating': '2'}, '4': {'text': 'e', 'lang': 'es', 'rating': '5'}}
result = any('a' in d.values() for d in dic.values())

推荐阅读