面试题答案
一键面试from typing import Dict, List, Union
def process_dict(data: Dict[str, List[Union[int, float]]]) -> None:
for key, value in data.items():
for num in value:
print(num)
假设我们有如下测试代码:
test_data: Dict[str, List[Union[int, float]]] = {
"key1": [1, 2.5],
"key2": [3, 4]
}
process_dict(test_data)
如果出现类型错误,常见情况及修正思路如下:
- 字典键类型错误:如果传递的字典键不是字符串,
mypy
会报错。此时需要确保传入字典的键为字符串类型。例如,若错误代码为test_data = {1: [1, 2.5]}
,应修正为test_data = {"key1": [1, 2.5]}
。 - 列表元素类型错误:如果列表中包含非整数或浮点数的元素,
mypy
会报错。比如错误代码为test_data = {"key1": [1, "a"]}
,需要将列表中的非数字元素移除或修正为数字类型,修正后为test_data = {"key1": [1, 2.5]}
。