Python 如何计算嵌套字典中的元素数量
为了计算嵌套字典中的元素数量,我们可以使用内置函数len()。通过这个函数,我们还可以使用一个递归调用的函数来计算任意深度的嵌套字典中的元素。
计算字典中的元素
让我们首先创建一个Python字典,并使用len()方法计算其值的数量。在这里,我们在字典中包含了4个键值对,并显示它们。 Product, Model, Units 和 Available 是字典的键。除了Units键以外,所有的键都具有字符串值。
示例
# Creating a Dictionary
myprod = {
"Product":"Mobile",
"Model": "XUT",
"Units": 120,
"Available": "Yes"
}
# Displaying the Dictionary
print(myprod)
# Count
print(len(myprod))
输出
{'Product': 'Mobile', 'Model': 'XUT', 'Units': 120, 'Available': 'Yes'}
4
现在,我们将创建一个嵌套字典并计算其中的元素。
计算嵌套字典中的元素个数
要计算嵌套字典中的元素个数,我们使用了sum()函数,并在其中逐个计算了字典的值。最后,显示计数结果 –
示例
# Creating a Nested Dictionary
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"
}
}
# Displaying the Nested Dictionary
print("Nested Dictionary = \n",myprod)
print("Count of elements in the Nested Dictionary = ",sum(len(v) for v in myprod.values()))
输出
Nested Dictionary =
{'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'}}
Count of elements in the Nested Dictionary = 12
计算任意深度嵌套字典中的元素数量
为了计算任意深度嵌套字典中的元素数量,我们创建了一个自定义的Python函数,并在其中使用了for循环。循环递归调用并计算字典的深度。最后,返回其长度。
示例
# Creating a Nested Dictionary
myprod = {
"Product" : {
"Name":"Mobile",
"Model":
{
'ModelName': 'Nord',
'ModelColor': 'Silver',
'ModelProcessor': 'Snapdragon'
},
"Units": 120,
"Available": "Yes"
}
}
# Function to calculate the Dictionary elements
def count(prod, c=0):
for mykey in prod:
if isinstance(prod[mykey], dict):
# calls repeatedly
c = count(prod[mykey], c + 1)
else:
c += 1
return c
# Displaying the Nested Dictionary
print("Nested Dictionary = \n",myprod)
# Display the count of elements in the Nested Dictionary
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