我想对完全由字符串组成的CSV数据进行一些类型转换。我考虑使用一个包含头部名称和函数映射关系的字典,并将这些函数映射到每个CSV行。但是,我在如何高效地映射多个函数到一行上有些困惑。我考虑枚举表头并创建一个新的索引与函数的字典:
header_map = {'Foo':str,
'Bar':str,
'FooBar':float}
csv_data = [('Foo', 'Bar', 'FooBar'),
#lots of data...
]
index_map = {}
#enumerate the rows and create a dictionary of index:function
for i, header in enumerate(csv_data[0]):
index_map[i] = header_map[header]
#retrieve the function for each index and call it on the value
new_csv = [[index_map[i](value) for i, value in enumerate(row)]
for row in csv_data[1:]]
我只是好奇有没有更简单高效的方法来完成这种操作?