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

如何将混合字符串列表转整数浮点数并按类型分入不同列表?

处理字符串形式整数与浮点数的混合列表并分类存储

你的需求是把混合了字符串形式整数(如'2')和浮点数(如'3.5')的列表,转换为对应数值类型后分别存入整数列表和浮点数列表,但你提供的代码无法实现这一点——因为输入列表的所有元素都是字符串类型,type(x)==int永远为False,最终所有元素都会被分到浮点数列表里。

下面是两种可行的解决方案:

方法1:通过try-except捕获转换异常

优先尝试将字符串转为整数,成功则存入整数列表;转换失败时,再转为浮点数存入浮点数列表:

def separate_float_int(input_list):
    integers = []
    floats = []
    for s in input_list:
        try:
            num = int(s)
            integers.append(num)
        except ValueError:
            num = float(s)
            floats.append(num)
    return integers, floats

L = ['2', '3.5', '6', '5.1', '9.8', '7.8', '5', '3.3', '0.5', '9']
integer_list, float_list = separate_float_int(L)
print(integer_list)  # 输出: [2, 6, 5, 9]
print(float_list)    # 输出: [3.5, 5.1, 9.8, 7.8, 3.3, 0.5]

方法2:先转浮点数再判断是否为整数

先把所有字符串转为浮点数,再通过is_integer()方法判断该浮点数是否为整数(小数部分为0),是则转为整数存入对应列表,否则保留浮点数:

def separate_float_int(input_list):
    integers = []
    floats = []
    for s in input_list:
        num = float(s)
        if num.is_integer():
            integers.append(int(num))
        else:
            floats.append(num)
    return integers, floats

L = ['2', '3.5', '6', '5.1', '9.8', '7.8', '5', '3.3', '0.5', '9']
integer_list, float_list = separate_float_int(L)
print(integer_list)  # 输出: [2, 6, 5, 9]
print(float_list)    # 输出: [3.5, 5.1, 9.8, 7.8, 3.3, 0.5]

两种方法的区别:方法1仅识别纯整数格式的字符串;方法2会把'2.0'这类字符串也识别为整数,存入整数列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:35:42