2024-06-11 10:23:58 发布
网友
我怎么查字典里有没有“安娜”?挑战似乎是访问列表中的值:
data = {"Pam": {"Job":"Pilot", "YOB": "1986", "Children": ["Greg", "Anna","Sima"]}, "Joe": {"Job":"Engineer", "YOB": "1987"}}
如果您的字典如上所述,并且您只想测试“Anna”是否在“Pam”子字典的“Children”列表中,则可以简单地执行以下操作:
print("Anna" in data["Pam"]["Children"])
但我想你真的想要更一般的东西。;)
下面是一个递归函数,它将检查由嵌套字典和列表组成的对象,以查找给定的值。外部对象可以是dict或list,因此它适合处理从JSON创建的对象。注意,它忽略dict键,它只查看值。它将尽可能深入地递归以找到匹配的值,但一旦找到匹配项,它就会停止搜索。在
输出
Pam False Pilot True 1986 True 1987 True 1988 False YOB False Greg True Anna True Sima True Engineer True Doctor False
传递给has_value的obj必须是dict或list,否则将失败
has_value
obj
UnboundLocalError: local variable 'values' referenced before assignment
{{comprehension在cd2>中作为一个元素出现在一个cd2>中,如果一个元素出现在cd2>中,则可以使用^作为键来检查}元素:
data = {"Pam": {"Job":"Pilot", "YOB": "1986", "Children": ["Greg", "Anna","Sima"]}, "Joe": {"Job":"Engineer", "YOB": "1987"}} if any(a == 'Anna' or 'Anna' in b.get('children', []) for a, b in data.items()): pass
如果您的字典如上所述,并且您只想测试“Anna”是否在“Pam”子字典的“Children”列表中,则可以简单地执行以下操作:
但我想你真的想要更一般的东西。;)
下面是一个递归函数,它将检查由嵌套字典和列表组成的对象,以查找给定的值。外部对象可以是dict或list,因此它适合处理从JSON创建的对象。注意,它忽略dict键,它只查看值。它将尽可能深入地递归以找到匹配的值,但一旦找到匹配项,它就会停止搜索。在
^{pr2}$输出
传递给
has_value
的obj
必须是dict或list,否则将失败{{comprehension在cd2>中作为一个元素出现在一个cd2>中,如果一个元素出现在cd2>中,则可以使用^作为键来检查}元素:
相关问题 更多 >
编程相关推荐