python - 如何知道一个值是否在嵌套字典中?
问题描述
我是 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。我搜索了类似的问题,但没有找到任何可以用来解决我的问题的问题。你能帮我么?提前致谢。
解决方案
您可以使用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())
推荐阅读
- c - 以这种奇怪的方式创建二维数组的函数的返回类型
- python - Python - lambda 函数按值对字典进行排序
- java - 如何使用 KStream 中的值分配新变量
- python-3.x - 我们如何在 jupyter lab 中配置默认导入我已经在 jupyter notebook 中完成了这项工作,但它在 jupyter lab notebook 中失败
- mongodb - MongoDB按数组中的指定元素对文档进行排序
- xml - 使用 Zeep 问题的工作日 SOAP API
- python - 为什么我们在所有类方法上都传递 self ?
- excel - 有没有办法根据另一列中的一个单元格扫描整列并提取相应列的值?
- python - 如何在python的多个方法中使用var
- regex - 正则表达式:从字符串末尾开始匹配模式