如何计算Python嵌套字典中的元素数量?

如何计算Python嵌套字典中的元素数量?

要计算嵌套字典中的元素数量,我们可以使用内置函数len()。通过使用递归调用的函数,我们还可以计算任意深度嵌套字典中的元素数量。

计算字典中的元素数量

让我们首先创建一个Python字典,并使用len()方法计算其值。在此,我们已经在字典中包含了4个键值对,并将它们显示出来。 产品,型号,单位可用性, 是字典的键。除了单位键外,所有键都具有字符串值。

例子

#创建字典
myprod={
    "Product":"Mobile",
    "Model":"XUT",
    "Units":120,
    "Available":"Yes"
}

#打印出字典
print(myprod)

#计算
print(len(myprod))

输出

{'Product': 'Mobile', 'Model': 'XUT', 'Units': 120, 'Available': 'Yes'}
4

现在,我们将创建一个嵌套字典并计算元素数量。

计算嵌套字典中的元素数量

为了计算嵌套字典中的元素数量,我们使用sum()函数计算一个接一个的字典值。最后,显示元素数量-

例子

# 创建嵌套字典
myprod={
    "Product1":{
        "Name":"Mobile",
        "Model":"XUT",
        "Units":120,
        "Available":"Yes"
    },
    "Product2":{
        "Name":"SmartTV",
        "Model":"LG",
        "Units":70,
        "Available": "Yes"
    },
    "Product3":{
        "Name":"Laptop",
        "Model":"EEK",
        "Units":90,
        "Available":"Yes"
    }
}

#显示嵌套字典
print("嵌套字典 = \n",myprod)

print("嵌套字典中的元素数量 = ",sum(len(v) for v in myprod.values()))

输出

嵌套字典 = 
{'Product1': {'Name': 'Mobile', 'Model': 'XUT', 'Units': 120, 'Available': 'Yes'}, 'Product2': {'Name': 'SmartTV', 'Model': 'LG', 'Units': 70, 'Available': 'Yes'}, 'Product3': {'Name': 'Laptop', 'Model': 'EEK', 'Units': 90, 'Available': 'Yes'}}
嵌套字典中的元素数量 =  12

计算任意深度嵌套字典中的元素数量

为了计算任意深度嵌套字典中的元素数量,我们创建了一个自定义的Python函数,并在其中使用了for循环。循环递归调用并计算字典的深度。最后,它返回长度 –

示例

# 创建嵌套字典
myprod = {
    "Product" : {
        "Name":"Mobile",
        "Model":
        {
            'ModelName': 'Nord',
            'ModelColor': 'Silver',
            'ModelProcessor': 'Snapdragon'
        },
        "Units": 120,
        "Available": "Yes"
    }
}

# 计算字典元素的函数
def count(prod, c=0):
    for mykey in prod:
        if isinstance(prod[mykey], dict):
            # 重复调用
            c = count(prod[mykey], c + 1)
        else:
            c += 1
    return c

# 显示嵌套字典
print("Nested Dictionary = \n",myprod)

# 显示嵌套字典中元素的数量
print("Count of the Nested Dictionary = ",count(myprod))

输出

Nested Dictionary = 
 {'Product': {'Name': 'Mobile', 'Model': {'ModelName': 'Nord', 'ModelColor': 'Silver', 'ModelProcessor': 'Snapdragon'}, 'Units': 120, 'Available': 'Yes'}}
Count of the Nested Dictionary =  8

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程