MST

星途 面试题库

面试题:Python类型检查与复杂数据结构

定义一个函数,该函数接收一个字典作为参数,字典的键是字符串,值是包含整数和浮点数的列表。使用类型提示来标注这个函数参数,并使用`mypy`进行类型检查,若有类型错误请修正并阐述修正思路。
26.8万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
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)

如果出现类型错误,常见情况及修正思路如下:

  1. 字典键类型错误:如果传递的字典键不是字符串,mypy 会报错。此时需要确保传入字典的键为字符串类型。例如,若错误代码为 test_data = {1: [1, 2.5]},应修正为 test_data = {"key1": [1, 2.5]}
  2. 列表元素类型错误:如果列表中包含非整数或浮点数的元素,mypy 会报错。比如错误代码为 test_data = {"key1": [1, "a"]},需要将列表中的非数字元素移除或修正为数字类型,修正后为 test_data = {"key1": [1, 2.5]}