gpt4 book ai didi

python - 在 Python 中将值转换为各自数据类型的最快方法

转载 作者:太空狗 更新时间:2023-10-30 01:03:34 25 4
gpt4 key购买 nike

我有一个值列表 - 所有字符串。我想将这些值转换为它们各自的数据类型。我将值映射到可用的类型信息。

共有三种不同的数据类型:int、str、datetime。代码需要能够处理数据的错误情况。

我正在做类似的事情:-

tlist =  [ 'some datetime value', '12', 'string', .... ]

#convert it to: [ datetime object, 12, 'string', ....]

error_data = ['', ' ', '?', ...]

d = { 0: lambda x: datetime.strptime(x,...) if x not in error_data else x,
1: lambda x: int(x) if x not in error_data else 0,
2: lambda x: x
...
}

result = [ d[i](j) for i, j in enumerate(tlist) ]

要转换的列表很长,大约有 180 个值,我需要对数千个这样的列表进行转换。上面代码的性能很差。最快的方法是什么?

谢谢

最佳答案

如果您的日期时间值始终一致,为什么不让类型转换处理您试图在 error_data 中管理的无效数据。这不像某些解决方案那么吸引人,但使得基于列表中数据位置的类型转换管理起来更容易维护和扩展。

def convert(position, val):
if position == 0:
try:
return datetime.strptime(val, '%Y-%m-%d %H:%M:%S') # assuming date is in a constant format
except ValueError:
return val
elif position in (1, 15, 16): # assuming that you have other int values in other "columns"
try:
return int(val)
except ValueError:
return 0
else: # string type
return val

result = [convert(i,j) for i, j in enumerate(tlist)]

关于python - 在 Python 中将值转换为各自数据类型的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com