Вот одно решение, использующее itertools.chain
и понимание списка.
В нем нет оптимизации для повторяющихся строк.Я предлагаю вам проверить свои данные, чтобы убедиться, что производительность достаточна.
from itertools import chain
res = [list(chain.from_iterable(map(dict_.get, i))) for i in strings]
print(res)
[[0.4, 0.3, 0.8, -0.1, 7.4, 4.3, 1.5, -1.6, 1.2, 4.23, 0.5, 0.9, 0.5, 1.7],
[0.4, 0.3, 0.8, -0.1, 1.5, -1.6, 1.2, 7.4, 4.3],
[0.4, 0.3, 0.8, -0.1, 7.4, 4.3, 1.5, -1.6, 1.2, 4.23, 0.5, 0.9, 0.5, 1.7, 1.5, 8.1],
[0.4, 0.3, 0.8, -0.1, 1.5, -1.6, 1.2, 7.4, 4.3]]