You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复knapsack函数类型注解与pandas Series不兼容问题?

修复Knapsack函数的类型注解不兼容问题

问题根源

你的knapsack函数参数标注为List[Number],但调用时传入的是pandas的Series对象,二者类型不匹配,导致类型检查工具报错。

解决方案一:调用时将Series转为列表

直接在调用环节把Series转换为Python列表,匹配函数原有类型注解:

knapsack(limit, df['latency'].tolist(), df['amount'].tolist())

这种方式无需修改函数定义,适合希望保留原有函数参数约束的场景。

解决方案二:修改函数类型注解支持Series

如果希望函数同时兼容列表和Series输入,可以扩展参数的类型注解:
先导入pandas的Series类型,再用Union标注参数支持两种类型:

from typing import Union, List
from pandas import Series

Number = Union[int, float]

def knapsack(W: int, wt: Union[List[Number], Series[Number]], value: Union[List[Number], Series[Number]]) -> int:
    # 函数实现逻辑

注意:若你的开发环境无法识别Series的类型注解,需要先安装pandas-stubs库来提供pandas的类型提示支持。

内容的提问来源于stack exchange,提问作者Rodrigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 06:35:28