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

Python列表推导式报float不可迭代错误如何兼容单值场景

解决方案

直接在列表推导式的迭代对象位置加入类型判断,对单值float做包装即可,代码如下:

# 如果你存多值用的是元组,就用这个写法
i_lst = [int(i) for i in (sig2 if isinstance(sig2, tuple) else (sig2,))]

# 如果多值也可能存在列表类型,调整类型判断范围即可
i_lst = [int(i) for i in (sig2 if isinstance(sig2, (list, tuple)) else (sig2,))]

逻辑说明

  • 迭代前先对sig2做类型校验:如果是存储多值的列表/元组类型,直接作为迭代对象使用
  • 如果判定为单值float类型,就将其放入单元素元组(sig2,)中,转为可迭代对象再处理,就不会触发类型报错
  • 注意单元素元组末尾的逗号不能省略,否则不会被识别为元组类型

效果验证

  • 当sig2 = 1039.0时,最终得到结果[1039]
  • 当sig2 = (1034.0, 1035.0, 1036.0)时,最终得到结果[1034, 1035, 1036]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:45:02