python123题目——列表数据清理

类型:列表元组

描述

输入一个列表,将其中整数和值为整数的字符串转为整型数据,将其中浮点数字符串转为浮点数,其他所有字符串保持原样。

示例

输入:

[['abc', '123', '45.6', 'car', 'Bike','']]

输出:

[['abc', 123, 45.6, 'car', 'Bike', '']]

参考代码

def is_number(value):
    """传入一个字符串为参数,判定其能否转为整数或浮点数类型,返回布尔值."""
    return value.strip().lstrip('-+').replace('.', '', 1).isnumeric()


def clean_data(data):
    """传入一个元素为字符串的二维列表为参数,若子列表中元素为整数类型的字符串,将其转为整数类型。
    若子列表中元素为浮点数类型字符串,将其转为浮点类型,若存在值为整数的浮点数,将其转为整数类型。
    """
    for ls in data:
        for i in range(len(ls)):
            if is_number(ls[i]) and eval(ls[i]) == int(eval(ls[i])):
                ls[i] = int(eval(ls[i]))
            elif is_number(ls[i]):
                ls[i] = float(ls[i])
    return data


if __name__ == '__main__':
    ls = eval(input())
    print(clean_data(ls))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_62488776

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值