Use zip()
to combine the names and the values. With a list comprehension:
from collections import OrderedDict
ordered_dictionary = [OrderedDict(zip(names, subl)) for subl in list_of_lists]
which gives:
>>> from pprint import pprint
>>> pprint([OrderedDict(zip(names, subl)) for subl in list_of_lists])
[OrderedDict([('date', '20010103'), ('open', '0.9507'), ('high', '0.9569'), ('low', '0.9262'), ('close', '0.9271')]),
OrderedDict([('date', '20010104'), ('open', '0.9271'), ('high', '0.9515'), ('low', '0.9269'), ('close', '0.9507')]),
OrderedDict([('date', '20010105'), ('open', '0.9507'), ('high', '0.9591'), ('low', '0.9464'), ('close', '0.9575')])]