python字典编程题
时间: 2024-12-26 21:17:47 浏览: 6
### Python 字典编程练习题
#### 判断键的存在并处理不同类型的值
编写一段代码,用于判断给定字典中是否存在特定键`'k1'`,如果存在,则进一步检查该键对应的值是否为列表类型。这段逻辑可以用来验证输入数据的有效性和一致性。
```python
def check_key_and_type(d, key='k1'):
"""
检查指定的键是否存在于字典d中,
并且当此键存在时,确认其关联的值是不是一个列表。
参数:
d (dict): 需要被检查的目标字典。
key (str): 默认参数 'k1', 表示想要查找的键名。
返回:
bool: 如果键存在并且对应的是列表则返回True;否则False。
"""
return key in d and isinstance(d[key], list)
# 测试例子
test_dict = {'k1': ['a', 'b'], 'k2': 10}
print(check_key_and_type(test_dict)) # 输出 True 或 False 取决于 test_dict 的定义
```
上述函数实现了对字典内特定项的数据类型校验功能[^3]。
#### 使用 `keys()` 和 `values()`
下面的例子展示了如何遍历字典中的所有键以及它们所指向的值:
```python
sample_dict = {"name": "Alice", "age": 25}
for k in sample_dict.keys():
print(f"Key is {k}")
for v in sample_dict.values():
print(f"Value is {v}")
```
这里分别利用了 `.keys()` 方法获取所有的键集合,并通过循环打印出来;同样地,`.values()` 获取到了所有可能存在的值[^1]。
#### 创建和操作嵌套字典
考虑这样一个场景:创建一个多层结构的学生信息记录表单,其中每个学生都有自己的姓名、年龄和其他个人信息作为子字段保存在一个内部字典里。
```python
students_info = {
"student_1": {"name": "Bob", "age": 22},
"student_2": {"name": "Charlie", "age": 24}
}
# 添加新条目到现有字典中
new_student = {"name": "David", "age": 27}
students_info["student_3"] = new_student
# 访问某个具体学生的某一项属性
specific_value = students_info["student_2"]["age"]
print(specific_value) # 应输出 Charlie 的 age 值即 24
```
这个实例不仅说明了怎样构建复杂的字典对象,还介绍了向已有字典添加新的成员的方式,同时也示范了访问深层级元素的方法[^2]。
阅读全文