用python计数字典里嵌套的值出现次数
时间: 2023-06-01 17:03:42 浏览: 59
假设有一个字典如下:
```
data = {
"a": {
"x": 1,
"y": 2
},
"b": {
"x": 3,
"y": 4
},
"c": {
"x": 1,
"y": 4
}
}
```
要计算嵌套在字典中的值出现的次数,可以使用一个计数器来迭代所有的值:
```
from collections import Counter
counter = Counter()
for key, inner_dict in data.items():
for inner_key, value in inner_dict.items():
counter[value] += 1
print(counter)
```
这将输出一个计数器对象,它包含所有嵌套在字典中的值的出现次数。在这个例子中,输出将是:
```
Counter({1: 2, 4: 2, 2: 1, 3: 1})
```
这表示数字 1 出现了 2 次,数字 4 出现了 2 次,数字 2 出现了 1 次,数字 3 出现了 1 次。
相关问题
用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计数字典里某个键嵌套的键出现次数
假设我们有一个字典 `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` 的项并计数。最终输出计数结果。