类型:列表元组
描述
输入一个列表,将其中整数和值为整数的字符串转为整型数据,将其中浮点数字符串转为浮点数,其他所有字符串保持原样。
示例
输入:
[['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))