📜  在Python中的列表中计算字典

📅  最后修改于: 2022-05-13 01:54:58.675000             🧑  作者: Mango

在Python中的列表中计算字典

Python中的列表可能包含不同类型的项目。有时,在处理数据时,我们可能会遇到需要在特定列表中查找字典数量的问题。这可以应用于数据领域,包括 Web 开发和机器学习。让我们讨论可以执行此任务的某些方式。

方法 #1:使用列表理解 + isinstance()
上述功能的组合可以用来解决这个问题。在此,我们使用列表推导执行迭代并使用 isinstance() 测试字典。

# Python3 code to demonstrate working of 
# Dictionary Count in List
# Using list comprehension + isinstance()
  
# initializing list
test_list = [10, {'gfg' : 1}, {'ide' : 2, 'code' : 3}, 20]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Dictionary Count in List
# Using list comprehension + isinstance()
res = len([ele for ele in test_list if isinstance(ele, dict)])
  
# printing result 
print("The Dictionary count : " + str(res)) 
输出:
The original list is : [10, {'gfg': 1}, {'code': 3, 'ide': 2}, 20]
The Dictionary count : 2

方法 #2:使用递归 + isinstance() (用于嵌套字典)
上述功能的组合可以用来解决这个问题。在此,我们还使用递归解决了内部嵌套问题。

# Python3 code to demonstrate working of 
# Dictionary Count in List
# Using recursion + isinstance()
  
# helper_func
def hlper_fnc(test_list):
    count = 0
    if isinstance(test_list, str):
        return 0
    if isinstance(test_list, dict):
        return hlper_fnc(test_list.values()) + hlper_fnc(test_list.keys()) + 1
    try:
        for idx in test_list:
            count = count + hlper_fnc(idx)
    except TypeError:
        return 0
    return count
  
# initializing list
test_list = [10, {'gfg': 1}, {'code': 3, 'ide': 2}, 20]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Dictionary Count in List
# Using recursion + isinstance()
res = hlper_fnc(test_list)
  
# printing result 
print("The Dictionary count : " + str(res)) 
输出:
The original list is : [10, {'gfg': 1}, {'code': 3, 'ide': 2}, 20]
The Dictionary count : 2