The reason is for mapping (hence a map) the column name to the value. We don't always have a value, so another list with values wont work (might contain empty spots, in which case the default value should be used).

As this part of code is only used for unit tests I left it like that, I could change it it loop through the column names instead and then use the mapped value, but I doubt that would be that much more efficient.