用python计数字典里某个键嵌套的键出现次数
时间: 2023-06-01 17:03:49 浏览: 76
假设我们有一个字典 `d`,其中某个键 `key1` 对应的值是一个嵌套字典,我们想要计算这个嵌套字典中某个键 `key2` 出现的次数,可以使用如下代码:
```
count = 0
for k1, v1 in d.items():
if k1 == 'key1' and isinstance(v1, dict):
for k2 in v1:
if k2 == 'key2':
count += 1
print(count)
```
这里使用了两层循环,第一层循环遍历整个字典 `d`,找到键为 `key1` 的值是一个嵌套字典的项,第二层循环遍历这个嵌套字典,找到键为 `key2` 的项并计数。最终输出计数结果。
相关问题
用python计数字典里嵌套的键出现次数
假设你有一个字典,其中嵌套了一些键。你想要计算每个嵌套键的出现次数,可以使用以下代码:
```python
def count_keys(d, counts=None):
if counts is None:
counts = {}
if isinstance(d, dict):
for key in d.keys():
if key in counts:
counts[key] += 1
else:
counts[key] = 1
count_keys(d[key], counts)
return counts
```
这个函数 `count_keys` 接受一个字典和一个可选的计数字典作为输入。它首先检查计数字典是否已经存在,如果不存在,则创建一个空字典。然后,它检查输入字典是否是一个字典类型。如果是,它迭代字典中的每个键,并增加计数字典中相应键的值。然后,它递归调用 `count_keys` 函数,以处理嵌套的字典。最后,它返回计数字典。
你可以使用以下代码来测试 `count_keys` 函数:
```python
d = {
"a": {
"b": {
"c": 1,
"d": 2
},
"e": {
"f": 3,
"g": {
"h": 4,
"i": 5
}
}
},
"j": 6
}
counts = count_keys(d)
print(counts)
```
这将输出:
```
{'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1, 'g': 1, 'h': 1, 'i': 1, 'j': 1}
```
这意味着每个键都只出现了一次。
用python计数字典里其中一个键嵌套的键出现次数
假设有如下字典:
```
my_dict = {
"key1": {
"nested_key1": "value1",
"nested_key2": "value2"
},
"key2": {
"nested_key1": "value3",
"nested_key2": "value4"
},
"key3": {
"nested_key1": "value5",
"nested_key2": "value6",
"nested_key3": {
"nested_nested_key1": "value7"
}
}
}
```
现在要计算嵌套在`"nested_key1"`键下面的值出现的次数。可以使用以下代码:
```
count_dict = {}
for key, value in my_dict.items():
if "nested_key1" in value:
nested_value = value["nested_key1"]
if nested_value in count_dict:
count_dict[nested_value] += 1
else:
count_dict[nested_value] = 1
print(count_dict)
```
输出结果为:
```
{'value1': 1, 'value3': 1, 'value5': 1}
```
其中,`count_dict`记录了嵌套在`"nested_key1"`键下面的值出现的次数。