python字典多层嵌套和查询
时间: 2023-09-14 16:09:12 浏览: 89
Python中的字典可以进行多层嵌套,用来存储更为复杂的数据结构。可以通过嵌套的键来访问内层的值,以此来实现复杂数据的存储和查询。下面是一个示例:
```python
person = {
'name': 'John',
'age': 30,
'address': {
'street': '123 Main St',
'city': 'Anytown',
'state': 'CA',
'zip': '12345'
},
'phone_numbers': [
{
'type': 'home',
'number': '555-1234'
},
{
'type': 'work',
'number': '555-5678'
}
]
}
# 查询嵌套的值
print(person['name']) # 'John'
print(person['address']['city']) # 'Anytown'
print(person['phone_numbers'][0]['number']) # '555-1234'
# 修改嵌套的值
person['address']['street'] = '456 Main St'
person['phone_numbers'][1]['number'] = '555-4321'
# 添加新的嵌套键值对
person['email'] = 'john@example.com'
person['phone_numbers'].append({'type': 'mobile', 'number': '555-9999'})
```
以上代码中,我们创建了一个名为`person`的字典,其中包含了多层嵌套的键值对。我们可以通过`person[key]`的方式访问嵌套的值,其中`key`可以是一个字符串或者一个整数。如果需要修改嵌套的值,只需要使用相同的方式进行赋值即可。如果需要添加新的嵌套键值对,可以使用`person[key] = value`的方式进行添加。
需要注意的是,如果查询一个不存在的键,会抛出`KeyError`异常。为了避免这种情况,可以使用`get()`方法,如果键不存在,返回默认值(默认为`None`):
```python
print(person.get('name')) # 'John'
print(person.get('birthdate')) # None
print(person.get('birthdate', 'unknown')) # 'unknown'
```
阅读全文