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

如何对列表中含999的元素执行去尾乘30操作并解决报错?

问题解决:处理包含"999"的浮点数元素并修复TypeError

报错原因

你遇到的TypeError: argument of type 'float' is not iterable,是因为直接对浮点数(比如1.25999)使用了字符串包含检查("999" in element)。浮点数不是可迭代对象,无法直接用in操作符判断字符串是否存在,必须先把浮点数转换为字符串再进行检查。

实现代码

以下是满足需求的完整代码,同时处理了整数型浮点数(如3999.0)的情况:

def process_element(x):
    # 将浮点数转为字符串,处理整数型浮点数的".0"后缀
    s = str(x)
    if s.endswith('.0'):
        s = s[:-2]  # 去掉".0",转为整数字符串形式
    
    # 检查字符串是否以"999"结尾
    if s.endswith('999'):
        # 移除末尾的"999"并转为数值
        num = float(s[:-3])
        return num * 30
    # 不符合条件的元素返回原值
    return x

# 原始列表
sample_list = [-1.0, -1.0, 1.25999, 3999.0, 6999.0, 3777.0, 6888.0, 3999.0, 3999.0, 6999.0, 6999.0, 8999.0, 14.75999]
# 处理后的列表
processed_list = [process_element(item) for item in sample_list]

print(processed_list)

代码说明

  • 先将浮点数转为字符串,对3999.0这类整数型浮点数,去掉末尾的.0,避免干扰判断。
  • 检查字符串是否以999结尾,符合条件则移除末尾三个字符,转为数值后乘以30。
  • 不符合条件的元素保持原值不变。

运行结果

处理后的列表为:
[-1.0, -1.0, 37.5, 90.0, 180.0, 3777.0, 6888.0, 90.0, 90.0, 180.0, 180.0, 240.0, 442.5]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:20:43