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

Python列表含科学计数法数值,求最小值结果错误的问题

问题原因

你得到错误结果的核心原因是列表里存储的是字符串类型的数值,Python的min()函数对字符串做比较时,是按字符的ASCII码字典序判断,而非实际数值大小。比如字符串'0.005'会比'1.59e-32'被判定为更小——因为字符'0'的ASCII码比'1'小,这就导致了错误的最小值结果。

修复方案

将读取到的字符串转换为float类型后再加入列表,这样min()就能正确比较数值大小。修改后的代码如下:

import csv

with open('ar_blast.txt') as file:
    reader = csv.reader(file, delimiter='\t')
    lista = []
    count = 0

    for row in reader:
        count += 1
        # 把字符串转为浮点型数值
        num_value = float(row[10])
        lista.append(num_value)
    
    # 遍历完成后再打印结果,避免冗余输出
    print(lista)
    print(f"最小值: {min(lista)}")
额外优化提示
  • 把print(lista)和print(min(lista))移出循环,否则每添加一个元素就打印一次,输出会非常冗余,遍历完所有行后打印一次即可。
  • 用count += 1替代count = count +1,写法更简洁符合Python习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:05:29