Given a dataset, write a function to perform efficient feature transformation.
Represent the dataset as a list of row dictionaries and standardize each selected numeric feature using z-score normalization. Return a new dataset, preserve unselected fields, and replace constant-feature values with 0.0.
dataset is a non-empty list of dictionaries, and columns contains numeric feature names present in every row. Return a new list of dictionaries with transformed values.
def transform_features(dataset, columns):