还有其他赋值的方法吗
时间: 2024-02-22 13:58:34 浏览: 12
除了上述嵌套字典的方式,还有一些其他的赋值方法。
一种是使用 `setdefault()` 函数,它可以为不存在的键设置默认值。例如,我们可以先定义一个空字典,然后用 `setdefault()` 函数添加键值对:
```
scores = {}
scores.setdefault('Alice', {})['Math'] = 90
scores.setdefault('Alice', {})['English'] = 85
scores.setdefault('Alice', {})['Science'] = 92
```
这里的 `setdefault()` 函数会检查 `'Alice'` 是否已经在 `scores` 中,如果不存在,则会为其创建一个空字典,并将其作为 `'Alice'` 的值。然后可以通过 `[]` 运算符为 `scores['Alice']` 添加 `'Math'`、`'English'` 和 `'Science'` 三个键值对。
还有一种方法是使用 `collections.defaultdict` 类,它可以为不存在的键设置默认的值类型。例如,我们可以这样定义一个二维字典:
```
from collections import defaultdict
scores = defaultdict(dict)
scores['Alice']['Math'] = 90
scores['Alice']['English'] = 85
scores['Alice']['Science'] = 92
```
这里的 `defaultdict(dict)` 会创建一个字典,当一个键不存在时,会自动为其创建一个空字典。然后可以通过 `[]` 运算符为 `scores['Alice']` 添加 `'Math'`、`'English'` 和 `'Science'` 三个键值对。