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

如何对kwargs中的整数、整数列表做类型检查并转换为字符串?

错误原因

  1. 原写法if args == list是将变量值直接和list类型对象做相等判断,而非判断变量的类型是否为列表,该条件永远不成立,因此所有值都会走else分支,直接把列表整体转为字符串存入结果。
  2. 修改为if args != int时,是判断变量值是否不等于int类型对象,无论变量是列表还是整数,该条件都会成立,因此整数也会进入遍历逻辑,触发'int' is not iterable报错。

正确实现方案

Python中判断变量类型推荐使用isinstance()方法,也可以用type()做严格类型匹配,修改后的代码如下:

kwargs = {'foo': [1, 2], 'bar': 2, 'baz': 3}
new_list = []
for kw, args in kwargs.items():
    # 判断args是否为list类型
    if isinstance(args, list):
        for arg in args:
            new_list.append(str(arg))
    else:
        new_list.append(str(args))
print(new_list)
# 输出结果:['1', '2', '2', '3']

如果需要严格匹配类型、不考虑子类继承场景,也可以将判断条件替换为if type(args) is list,效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:24:05