Python – 测试空嵌套记录
有时,在使用Python字典时,我们可能会遇到一个问题,即我们需要测试一个特定的字典是否有嵌套记录,并且它们都是空的,即在 list 的情况下没有键或没有值。这类问题在数据科学等数据领域非常普遍。
让我们讨论一下可以执行此任务的特定方式。
Input : test_dict = {‘Gfg’: [], ‘geeks’: {}}
Output : True
Input : test_dict = {‘Gfg’: 4}
Output : False
方法 #1:使用递归 + all() + isinstance()
上述功能的组合可以用来解决这个问题。在此,我们使用 all() 检查所有嵌套,递归和 isinstance() 用于测试字典或列表。
# Python3 code to demonstrate working of
# Test for empty Nested Records
# Using recursion + all() + isinstance
# Helper function
def hlper_fnc(test_dict):
if isinstance(test_dict, dict):
return all(hlper_fnc(sub) for _, sub in test_dict.items())
if isinstance(test_dict, list):
return all(hlper_fnc(sub) for sub in test_dict)
return False
# initializing dictionary
test_dict = {'Gfg': [], 'is': { 'best': [], 'for': {} }, 'geeks': {}}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Test for empty Nested Records
# Using recursion + all() + isinstance
res = hlper_fnc(test_dict)
# printing result
print("Is dictionary without data ? : " + str(res))
输出 :
The original dictionary : {‘is’: {‘best’: [], ‘for’: {}}, ‘geeks’: {}, ‘Gfg’: []}
Is dictionary without data ? : True