有什么方法可以更改 Python 列表中每个项目的数据类型?

Is there any way to change data type of each item of a list in Python?

我有一个名为 listlog 的列表列表,其结构如下:

[['2022-05-04 11:06:50', 'INFO', 'Database Connection', 'Database', '10.05', 'NULL'] [...]

有什么方法可以更改每个项目的数据类型吗?第一个是 timestamp/datetime,第二个、第三个和第四个是字符串,第五个是浮点数或数字。

有什么办法吗? 我已经测试过类似的东西,但没有用

map(lambda item: Timestamp([item[0]]), listLog)

您应该可以通过以下方式完成此操作:

for item in listlog:
    item[0] = Timestamp(item[0])
    item[4] = float(item[4])

为您需要转换的每个数据字段添加额外的分配。

你可以试试这个。

from datetime import datetime
for item in listdata:
        item[0]=datetime.strptime(item[0], '%Y-%M-%d %H:%m:%S')
        item[1]=str(item[1])
        item[2]=str(item[2])
        item[3]=str(item[3])
        item[4]=float(item[4])

print(listt)

虽然我认为 Greg Hewgill 的解决方案是最佳实践,但如果您对 oneliners 感兴趣,这里是使用地图的答案:

 list(map(lambda item: [Timestamp(item[0])] + item[1:4] + [float(item[4])] + item[5:], listlog))
for i in range(0,len(list_name)):
     # check condition of the item whether its a string or integer or date-time stamp then do typecasting.

例如:if type(l[item])=int 并且您想将其转换为字符串然后写入:

l[item] = string(l[item])